JNIEXPORT void JNICALL Java_com_draekko_libharu_PdfPage_rectangle
  (JNIEnv *env, jobject obj, jfloat jleft, jfloat jtop, jfloat jwidth, jfloat jheight) {

    haru_setup_error_handler(env, __func__);
    HPDF_Page page = get_HPDF_Page(env, obj);
    HPDF_Page_Rectangle (page, jleft, jtop, jwidth, jheight);
    haru_clear_error_handler();
}
Exemplo n.º 2
0
JNIEXPORT void JNICALL Java_org_libharu_Page_setRGBFill
  (JNIEnv *env, jobject obj, jfloat red, jfloat green, jfloat blue)
{
  haru_setup_error_handler(env, __func__);
  HPDF_Page page = get_HPDF_Page(env, obj); 
  HPDF_Page_SetRGBFill(page, red, green, blue);
  haru_clear_error_handler();
}
JNIEXPORT void JNICALL Java_com_draekko_libharu_PdfPage_setLineWidth
  (JNIEnv *env, jobject obj, jfloat width) {
  
    haru_setup_error_handler(env, __func__);
    HPDF_Page page = get_HPDF_Page(env, obj); 
    HPDF_Page_SetLineWidth(page, width);
    haru_clear_error_handler();
}
JNIEXPORT void JNICALL Java_com_draekko_libharu_PdfPage_concatPage
  (JNIEnv *env, jobject obj, jfloat a, jfloat b, jfloat c, jfloat d, jfloat x, jfloat y) {

    haru_setup_error_handler(env, __func__);
    HPDF_Page page = get_HPDF_Page(env, obj); 
    HPDF_Page_Concat(page, a, b, c, d, x, y);
    haru_clear_error_handler();
}
Exemplo n.º 5
0
JNIEXPORT void JNICALL Java_org_libharu_Page_curveTo
  (JNIEnv *env, jobject obj, jfloat x1, jfloat y1, jfloat x2, jfloat y2, jfloat x3, jfloat y3)
{
  haru_setup_error_handler(env, __func__);
  HPDF_Page page = get_HPDF_Page(env, obj); 
  HPDF_Page_CurveTo(page, x1, y1, x2, y2, x3, y3);
  haru_clear_error_handler();
}
Exemplo n.º 6
0
JNIEXPORT void JNICALL Java_org_libharu_Page_setMiterLimit
  (JNIEnv *env, jobject obj, jfloat lim)
{
  haru_setup_error_handler(env, __func__);
  HPDF_Page page = get_HPDF_Page(env, obj); 
  HPDF_Page_SetMiterLimit(page, lim);
  haru_clear_error_handler();
}
Exemplo n.º 7
0
JNIEXPORT void JNICALL Java_org_libharu_Page_lineTo
  (JNIEnv *env, jobject obj, jfloat x, jfloat y)
{
  haru_setup_error_handler(env, __func__);
  HPDF_Page page = get_HPDF_Page(env, obj); 
  HPDF_Page_LineTo(page, x, y);
  haru_clear_error_handler();
}
JNIEXPORT void JNICALL Java_com_draekko_libharu_PdfPage_moveTextPos2
  (JNIEnv *env, jobject obj, jfloat x, jfloat y) {

    haru_setup_error_handler(env, __func__);
    HPDF_Page page = get_HPDF_Page(env, obj);
    HPDF_Page_MoveTextPos2(page, x, y);
    haru_clear_error_handler();
}
JNIEXPORT void JNICALL Java_com_draekko_libharu_PdfPage_gRestore
  (JNIEnv *env, jobject obj) {

    haru_setup_error_handler(env, __func__);
    HPDF_Page page = get_HPDF_Page(env, obj); 
    HPDF_Page_GRestore(page);
    haru_clear_error_handler();
}
JNIEXPORT void JNICALL Java_com_draekko_libharu_PdfPage_setTextLeading
  (JNIEnv *env, jobject obj, jfloat value) {

    haru_setup_error_handler(env, __func__);
    HPDF_Page page = get_HPDF_Page(env, obj); 
    HPDF_Page_SetTextLeading(page, value);
    haru_clear_error_handler();
}
Exemplo n.º 11
0
JNIEXPORT void JNICALL Java_org_libharu_Page_stroke
  (JNIEnv *env, jobject obj)
{
  haru_setup_error_handler(env, __func__);
  HPDF_Page page = get_HPDF_Page(env, obj); 
  HPDF_Page_Stroke(page);
  haru_clear_error_handler();
}
Exemplo n.º 12
0
// JNI methods
JNIEXPORT void JNICALL Java_org_libharu_Page_construct
  (JNIEnv *env, jobject obj, jobject document)
{
  haru_setup_error_handler(env, __func__);
  HPDF_Doc pdf = get_HPDF_Doc(env, document);
  HPDF_Page page = HPDF_AddPage(pdf); 
  set_HPDF_Page(env, obj, page);
  haru_clear_error_handler();
}
Exemplo n.º 13
0
JNIEXPORT jfloat JNICALL Java_org_libharu_Page_getWidth
  (JNIEnv *env, jobject obj)
{
  haru_setup_error_handler(env, __func__);
  HPDF_Page page = get_HPDF_Page(env, obj); 
  jfloat width = HPDF_Page_GetWidth(page);
  haru_clear_error_handler();
  return width;
}
JNIEXPORT void JNICALL Java_com_draekko_libharu_PdfImage_drawImage
  (JNIEnv *env, jobject obj, jfloat x, jfloat y, jfloat width, jfloat height) {
  
    haru_setup_error_handler(env, __func__);
    HPDF_Image image = get_HPDF_Image(env, obj); 
    HPDF_Page page = HPDF_GetCurrentPage(current_pdf); 
    HPDF_Page_DrawImage(page, image, x, y, width, height);
    haru_clear_error_handler();
}
Exemplo n.º 15
0
JNIEXPORT void JNICALL Java_org_libharu_Page_setFontAndSize
  (JNIEnv *env, jobject obj, jobject font, jfloat size)
{
  haru_setup_error_handler(env, __func__);
  HPDF_Page page = get_HPDF_Page(env, obj);
  HPDF_Font font_ptr = get_HPDF_Font(env, font);
  HPDF_Page_SetFontAndSize (page, font_ptr, size);
  haru_clear_error_handler();
}
Exemplo n.º 16
0
JNIEXPORT void JNICALL Java_org_libharu_Page_image
  (JNIEnv *env, jobject obj_page, jobject obj_image, 
   jfloat x, jfloat y, jfloat width, jfloat height) 
{
  haru_setup_error_handler(env, __func__);
  HPDF_Page page = get_HPDF_Page(env, obj_page); 
  HPDF_Image image = get_HPDF_Image(env, obj_image);
  HPDF_Page_DrawImage(page, image, x, y, width, height);
  haru_clear_error_handler();
}
Exemplo n.º 17
0
JNIEXPORT void JNICALL Java_org_libharu_Page_initIDs
  (JNIEnv *env, jclass cls)
{
  haru_setup_error_handler(env, __func__);
  Document_HPDF_Page_Pointer_ID = env->GetFieldID(cls, "HPDF_Page_Pointer", "I");
  if (Document_HPDF_Page_Pointer_ID == NULL) {
    return;
  }
  haru_clear_error_handler();
}
JNIEXPORT jfloat JNICALL Java_com_draekko_libharu_PdfPage_getHeight
  (JNIEnv *env, jobject obj) {
  
    haru_setup_error_handler(env, __func__);
    HPDF_Page page = get_HPDF_Page(env, obj); 
    jfloat height = HPDF_Page_GetHeight(page);
    haru_clear_error_handler();

    return height;
}
JNIEXPORT void JNICALL Java_com_draekko_libharu_PdfPage_showTextNextLine
  (JNIEnv *env, jobject obj, jstring text) {

    haru_setup_error_handler(env, __func__);
    const char* str = env->GetStringUTFChars(text, 0);
    HPDF_Page page = get_HPDF_Page(env, obj);
    HPDF_Page_ShowText (page, str);
    env->ReleaseStringUTFChars(text, str);
    haru_clear_error_handler();
}
JNIEXPORT void JNICALL Java_org_libharu_Document_construct
  (JNIEnv *env, jobject obj)
{
  haru_setup_error_handler(env, __func__);
  HPDF_Doc pdf = HPDF_New(haru_error_handler, NULL);
  set_HPDF_Doc(env, obj, pdf);
  if (pdf == NULL)
    haru_throw_exception("Failed to create new PDF document.");
  haru_clear_error_handler();
}
Exemplo n.º 21
0
JNIEXPORT void JNICALL Java_org_libharu_Page_textOut
  (JNIEnv *env, jobject obj, jfloat x, jfloat y, jstring text)
{
  haru_setup_error_handler(env, __func__);
  HPDF_Page page = get_HPDF_Page(env, obj);
  const char* str = env->GetStringUTFChars(text, 0);
  HPDF_Page_TextOut (page, x, y, str);
  env->ReleaseStringUTFChars(text, str);
  haru_clear_error_handler();
}
JNIEXPORT jint JNICALL Java_com_draekko_libharu_PdfImage_getSizeY
  (JNIEnv *env, jobject obj) {
  
    haru_setup_error_handler(env, __func__);
    HPDF_Point point;
    HPDF_Image image = get_HPDF_Image(env, obj); 
    point = HPDF_Image_GetSize(image);
    haru_clear_error_handler();
    
    return point.y;
}
JNIEXPORT jfloat JNICALL Java_com_draekko_libharu_PdfPage_getCurrentPositionY
  (JNIEnv *env, jobject obj) {

    HPDF_Point point;
    haru_setup_error_handler(env, __func__);
    HPDF_Page page = get_HPDF_Page(env, obj); 
    point = HPDF_Page_GetCurrentPos(page);
    haru_clear_error_handler();

    return point.y;
}
JNIEXPORT jint JNICALL Java_com_draekko_libharu_PdfImage_getBitsPerComponent
  (JNIEnv *env, jobject obj) {

    haru_setup_error_handler(env, __func__);
    HPDF_UINT value;
    HPDF_Image image = get_HPDF_Image(env, obj); 
    value = HPDF_Image_GetBitsPerComponent(image);
    haru_clear_error_handler();
  
    return value;
}
Exemplo n.º 25
0
JNIEXPORT jfloat JNICALL Java_org_libharu_Page_getTextWidth
  (JNIEnv *env, jobject obj, jstring text)
{
  haru_setup_error_handler(env, __func__);
  HPDF_Page page = get_HPDF_Page(env, obj);
  const char* str = env->GetStringUTFChars(text, 0);
  float tw = HPDF_Page_TextWidth (page, str);
  env->ReleaseStringUTFChars(text, str);
  haru_clear_error_handler();
  return tw;
}
JNIEXPORT jstring JNICALL Java_com_draekko_libharu_PdfImage_getColorSpace
  (JNIEnv *env, jobject obj) {
  
    haru_setup_error_handler(env, __func__);
    const char* ptr_colorspace;
    jstring value;
    HPDF_Image image = get_HPDF_Image(env, obj); 
    ptr_colorspace = HPDF_Image_GetColorSpace(image);
    value = env->NewStringUTF(ptr_colorspace);
    haru_clear_error_handler();

    return value;
}
JNIEXPORT void JNICALL Java_com_draekko_libharu_PdfImage_constructPng
  (JNIEnv *env, jobject obj, jobject document, jstring fileName) {

    haru_setup_error_handler(env, __func__);

    const char* file_str = env->GetStringUTFChars(fileName, 0);
    current_pdf = get_HPDF_Doc(env, document);

    current_page = HPDF_GetCurrentPage(current_pdf); 
    HPDF_Image image = HPDF_LoadPngImageFromFile(current_pdf, file_str);
    set_HPDF_Image(env, obj, image);

    env->ReleaseStringUTFChars(fileName, file_str);
    haru_clear_error_handler();
}
JNIEXPORT jint JNICALL Java_com_draekko_libharu_PdfPage_textRect
  (JNIEnv *env, jobject obj, jfloat jleft, jfloat jtop, jfloat jright, jfloat jbottom, jstring jtext, jobject jalignmentEnum) {

    haru_setup_error_handler(env, __func__);

    jclass TextRectAlign = env->FindClass("com/draekko/libharu/PdfPage$TextRectAlign");
    jmethodID TextRectAlign_getNameMethod = env->GetMethodID(TextRectAlign, "name", "()Ljava/lang/String;");
    jstring alignment_value = (jstring)env->CallObjectMethod(jalignmentEnum, TextRectAlign_getNameMethod);
    const char* alignment_str = env->GetStringUTFChars(alignment_value, 0);

    const char *text = env->GetStringUTFChars(jtext, 0);
    HPDF_UINT  *len;
    HPDF_REAL  left = jleft;
    HPDF_REAL  top = jtop;
    HPDF_REAL  right = jright;
    HPDF_REAL  bottom = jbottom;
    HPDF_TextAlignment align;
    HPDF_INT   value;

    if (strcmp(alignment_str, "TALIGN_LEFT") == 0) {
        align = HPDF_TALIGN_LEFT;
    } else if (strcmp(alignment_str, "TALIGN_RIGHT") == 0) {
        align = HPDF_TALIGN_RIGHT;
    } else if (strcmp(alignment_str, "TALIGN_CENTER") == 0) {
        align = HPDF_TALIGN_CENTER;
    } else if (strcmp(alignment_str, "TALIGN_JUSTIFY") == 0) {
        align = HPDF_TALIGN_JUSTIFY;
    } else {
        haru_throw_exception("Unsupported alignment.");
    }

    HPDF_Page page = get_HPDF_Page(env, obj);
    HPDF_Page_TextRect (page, left, top, right, bottom, text, align, len);

    env->ReleaseStringUTFChars(jtext, text);

    if (len == NULL) {
        value = -1;
    } else if (len < 0) {
        value = 0;
    } else {
        value = (long)len;
    }

    haru_clear_error_handler();

    return value;
}
JNIEXPORT void JNICALL Java_org_libharu_Document_setPassword
  (JNIEnv *env, jobject obj, jstring jownerpass, jstring juserpass)
{
  haru_setup_error_handler(env, __func__);
  const char *ownerpass = (char*)env->GetStringUTFChars(jownerpass, NULL);
  if (ownerpass == NULL) return;
  const char *userpass = (char*)env->GetStringUTFChars(juserpass, NULL);
  if (userpass == NULL) return;

  HPDF_Doc pdf = get_HPDF_Doc(env, obj);
  HPDF_SetPassword(pdf, ownerpass, userpass);

  env->ReleaseStringUTFChars(jownerpass, ownerpass);
  env->ReleaseStringUTFChars(juserpass, userpass);
  haru_clear_error_handler();
}
JNIEXPORT jint JNICALL Java_com_draekko_libharu_PdfPage_measureText
  (JNIEnv *env, jobject obj, jstring text, jfloat width, jboolean wordwrap, jfloat real_width) {

    HPDF_UINT ret = -1;
    HPDF_REAL *rw = NULL;
    const char* txt = env->GetStringUTFChars(text, 0);

    haru_setup_error_handler(env, __func__);
    HPDF_Page page = get_HPDF_Page(env, obj); 
    if (real_width > -1) {
        rw = &real_width;
    }
    ret = HPDF_Page_MeasureText(page, txt, width, wordwrap, rw);
    env->ReleaseStringUTFChars(text, txt);
    haru_clear_error_handler();

    return ret;
}