1. 解压
tar -zxvf libharu-libharu-v2.4.3-0-g8dbcfe4.tar
2.在解压出来文件夹中创建一个build文件夹
mkdir build
3.进入build文件夹
cd build
4.使用cmake编译
cmake ..
5.make编译
make
6.编译出来的 libhpdf.so 就是我们需要的库文件
*:在引入头文件时,需要把 build/include/hpdf_config.h 文件一起拿出来,不然会报错缺少文件
二、基本使用
// 简单添加一张图片到PDF文件中,图片按比例显示,PDF文件页面边距50px
int main2()
{
HPDF_Doc pdf = HPDF_New(NULL, NULL);
// 创建PDF文件和页面
HPDF_Page page = HPDF_AddPage (pdf);
HPDF_Page_SetSize (page, HPDF_PAGE_SIZE_A4, HPDF_PAGE_PORTRAIT);
HPDF_REAL page_width = HPDF_Page_GetWidth(page);
HPDF_REAL page_height = HPDF_Page_GetHeight(page);
cout << "page width:" << page_width << " height:" << page_height << endl;
// 加载图片到页面上,PDF的坐标是从左下角计算的
HPDF_Image image = HPDF_LoadJpegImageFromFile (pdf, "./files/1.jpg");
HPDF_REAL width = HPDF_Image_GetWidth(image);
HPDF_REAL height = HPDF_Image_GetHeight(image);
HPDF_REAL image_scale = width / (page_width-100);
HPDF_Page_DrawImage(page, image, 50, page_height - height / image_scale - 50, width / image_scale, height / image_scale);
cout << "image width:" << width << " height:" << height << endl;
HPDF_SaveToFile (pdf, "1.pdf");
HPDF_Free (pdf);
cout << "save success" << endl;
return 0;
}
// 添加多张图片到PDF文件中,一张图片一个页面
int main()
{
HPDF_Doc pdf = HPDF_New(NULL, NULL);
vector
for(int i=0; i { HPDF_Page page = HPDF_AddPage(pdf); HPDF_Page_SetSize (page, HPDF_PAGE_SIZE_A4, HPDF_PAGE_PORTRAIT); HPDF_Image image = HPDF_LoadJpegImageFromFile(pdf, files.at(i).c_str()); HPDF_Page_DrawImage(page, image, 50, 50, HPDF_Image_GetWidth(image), HPDF_Image_GetHeight(image)); } HPDF_SaveToFile(pdf, "2.pdf"); HPDF_Free(pdf); } // 图片是什么尺寸,PDF的page页面就是什么尺寸 int main() { HPDF_Doc pdf = HPDF_New(NULL, NULL); HPDF_SetCompressionMode(pdf, HPDF_COMP_ALL); // 压缩 vector for (int i = 0; i < files.size(); i++) { HPDF_Image image = HPDF_LoadJpegImageFromFile(pdf, files.at(i).c_str()); HPDF_REAL image_width = HPDF_Image_GetWidth(image); HPDF_REAL image_height = HPDF_Image_GetHeight(image); HPDF_Page page = HPDF_AddPage(pdf); HPDF_Page_SetWidth(page, image_width); HPDF_Page_SetHeight(page, image_height); // 设置缩放 HPDF_Destination dst = HPDF_Page_CreateDestination(page); HPDF_Destination_SetXYZ(dst, 0, HPDF_Page_GetHeight(page), 1); HPDF_SetOpenAction(pdf, dst); HPDF_Page_DrawImage(page, image, 0, 0, image_width, image_height); } HPDF_SaveToFile(pdf, "1.pdf"); HPDF_Free(pdf); }