最近由于项目需要,需要用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
原文链接: https://www.cnblogs.com/honernan/p/12991640.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/198098
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!