1. 제품
  2.   PDF
  3.   C++
  4.   LibHaru

LibHaru

 
 

PDF 문서용 오픈소스 C++ 라이브러리

오픈 소스 C++ API를 통해 PDF 파일을 생성, 편집, 조작 및 변환합니다.

LibHaru는 소프트웨어 개발자가 PDF 파일 형식을 생성할 수 있도록 하는 오픈 소스 C++ 라이브러리입니다. 현재 API는 기존 PDF 문서를 읽거나 편집하는 것을 허용하지 않습니다. API를 사용하여 PDF 파일을 생성할 수 있습니다. 텍스트, 라인 및 주석을 추가할 수 있습니다. 또한 문서에 PNG 및 JPEG 형식의 이미지를 추가할 수도 있습니다. LibHaru는 또한 deflate-decode 형식으로 PDF 문서를 압축하고 암호화된 PDF 문서를 생성할 수 있습니다.

LibHaru는 ANSI-C로 작성되었으며 정적 라이브러리와 공유 라이브러리로 모두 작동할 수 있습니다. C++ 프로그램과 함께 사용하려면 C++ 컴파일러로 컴파일하고 정적 라이브러리로 사용할 수 있습니다.

Previous Next

LibHaru 시작하기

LibHaru는 ANSI-C로 작성되었으며 C++와 함께 사용하려면 호환되는 모든 C++ 컴파일러로 컴파일할 수 있습니다. 먼저 최신 버전의 API를 다운로드하여 추출할 수 있습니다. 스크립트 디렉토리에는 모든 컴파일러에 대해 여러 종류의 makefile이 있습니다. 적절한 makefile로 라이브러리를 빌드하십시오.

스크립트 디렉토리에는 모든 컴파일러에 대해 여러 종류의 makefile이 있습니다. 적절한 makefile로 라이브러리를 빌드하십시오.

컴파일러용 라이브러리 빌드

 //Microsoft VC++ Compiler 
NMAKE -f script/Makefile.msvc
//Borland C++ Compiler
make -f script/Makefile.BCC

PDF 파일 형식을 생성하는 C++ 라이브러리

LibHaru는 소프트웨어 개발자가 PDF 파일 형식을 생성할 수 있도록 하는 일련의 기능을 제공했습니다. API를 사용하여 새 PDF 문서를 만들고, 문서 개체 속성을 설정하고, 새 페이지를 만들고, 페이지 개체를 설정하고, 페이지 설명을 설정하고, 문서를 파일 또는 메모리 스트림에 저장할 수 있습니다.

C++를 사용하여 PDF에 이미지 포함

LibHaru를 사용하면 소프트웨어 개발자가 PDF 문서에 JPEG 및 PNG 이미지를 포함할 수 있습니다. API를 사용하여 이미지 크기, 너비, 높이, 구성요소당 비트 수 및 색상 공간을 얻을 수 있습니다. 또한 포함된 이미지에 대해 컬러 마스크 및 마스크 이미지를 설정할 수 있습니다.

C++ API를 사용하여 암호화된 PDF 파일 생성

암호화는 정보를 정보의 진정한 의미를 숨기는 비밀 코드로 인코딩할 수 있는 매우 유용한 메커니즘입니다. 오픈 소스 라이브러리 LibHaru를 사용하면 소프트웨어 개발자가 외부 종속성 없이 암호화된 PDF 파일을 만들 수 있습니다.

C++를 통해 암호화된 PDF 파일 생성

 const static char* text = "This is an encrypt document example.";
const static char* owner_passwd = "owner";
const static char* user_passwd = "user";
jmp_buf env;
#ifdef HPDF_DLL
void __stdcall
#else
void
#endif
error_handler (HPDF_STATUS  error_no,
        HPDF_STATUS  detail_no,
        void     *user_data)
{
  printf ("ERROR: error_no=%04X, detail_no=%u\n", (HPDF_UINT)error_no,
        (HPDF_UINT)detail_no);
  longjmp(env, 1);
}
int
main (int argc, char **argv)
{
  HPDF_Doc pdf;
  HPDF_Font font;
  HPDF_Page page;
  char fname[256];
  HPDF_REAL tw;
  strcpy (fname, argv[0]);
  strcat (fname, ".pdf");
  pdf = HPDF_New (error_handler, NULL);
  if (!pdf) {
    printf ("error: cannot create PdfDoc object\n");
    return 1;
  }
  if (setjmp(env)) {
    HPDF_Free (pdf);
    return 1;
  }
  /* create default-font */
  font = HPDF_GetFont (pdf, "Helvetica", NULL);
  /* add a new page object. */
  page = HPDF_AddPage (pdf);
  HPDF_Page_SetSize (page, HPDF_PAGE_SIZE_B5, HPDF_PAGE_LANDSCAPE);
  HPDF_Page_BeginText (page);
  HPDF_Page_SetFontAndSize (page, font, 20);
  tw = HPDF_Page_TextWidth (page, text);
  HPDF_Page_MoveTextPos (page, (HPDF_Page_GetWidth (page) - tw) / 2,
        (HPDF_Page_GetHeight (page) - 20) / 2);
  HPDF_Page_ShowText (page, text);
  HPDF_Page_EndText (page);
  HPDF_SetPassword (pdf, owner_passwd, user_passwd);
  /* save the document to a file */
  HPDF_SaveToFile (pdf, fname);
  /* clean up */
  HPDF_Free (pdf);
  return 0;
}
        
 한국인