使用C++编辑导出pdf文件
最近由于项目需要,需要用C++编辑Json数据为pdf并导出,记录一下学习过程。
p.set_option(L"searchpath=../PDFlib-CMap-4.0/resource/cmap");
// testpdf.cpp : 定义控制台应用程序的入口点。 #include "stdafx.h" #include <iostream> #include "include/pdflib.h" #include "include/pdflib.hpp" using namespace std; using namespace pdflib; int main(void) { try { PDFlib p; // 打开文档 if (p.begin_document(L"test.pdf", L"") == -1) { wcerr << "Error: " << p.get_errmsg() << endl; return 2; } //配置cmap,用于支持中文字体 p.set_option(L"searchpath=../PDFlib-CMap-4.0/resource/cmap"); p.set_info(L"Creator", L"oneclick"); p.set_info(L"Author", L"Thomas Merz"); p.set_info(L"Title", L"test"); p.begin_page_ext(a4_width, a4_height, L""); //设置pdf大小为A4 // 设置中文字体并检查 int font = p.load_font(L"STSong-Light", L"UniGB-UCS2-H", L"");; if (font == -1) { wcerr << L"Error: " << p.get_errmsg() << endl; return(2); } //输出标题 p.setfont(font, 24); p.set_text_pos(200, 800); p.show(L"Hello world"); p.continue_text(L"你好,世界"); p.end_page_ext(L""); p.end_document(L""); } catch (PDFlib::Exception &ex) { wcerr << L"PDFlib exception occurred in hello sample: " << endl << L"[" << ex.get_errnum() << L"] " << ex.get_apiname() << L": " << ex.get_errmsg() << endl; return 2; } return 0; }
代码运行成功就会生成一个test.pdf文件,内容如下:
pdflib和Cmaps分享:
链接:https://pan.baidu.com/s/1WPz3pNMtszG5M-gFKQ51-Q 提取码:z53r