利用PDFLib生成PDF文档
一. PDF简介
PDF是可移植文档格式的缩写。PDF文件格式是电子文档交换的国际事实标准,被许多国家采用作为电子文档交换。PDF文件可以在各种平台上阅读、编辑和发布。这种文件格式支持嵌入字体、图像甚至任何附件。您可以通过免费的Adobe Acrobat Reader阅读和编辑PDF文档。
二。PDFLib简介
PDFLib是一个用于创建PDF文档的开发库,它提供了一个简单易用的API,隐藏了创建PDF的复杂细节,不需要第三方软件的支持。PDFLib库对个人免费。对于商业产品,你需要购买许可证。您可以从VC知识库:http://www.vckbase.com/tools/.的工具和资源部分下载它
第三,在VC++中使用PDFLib
本例中使用的PDFLib是4.0.2版,类似于5.0版。5.0免费版有WWW.PDFLIB.COM的水印,4.0没有。
3.1前期准备
项目建立后,将except.cpp、except.h、pdflib.cpp、pdflib.h、pdflib.dll、pdflib.lib复制到项目目录下。
3.2编码
3.2.1添加对头文件和库的引用# include " pdflib . HPP "
# pragma comment(lib," pdflib.lib") 3.2.2生成PDF文档的过程
生成PDF文档的过程非常简单,请看如下编码:int main(void)
{
try
{
PDFlib pdf;
// 设置兼容参数
pdf.set_parameter("compatibility", "1.4"); // 兼容Acrobat 5
// 打开文档
if(pdf.open("vckbase.pdf") == -1)
throw("打开文件出错!");
// 设置文档信息
pdf.set_info("Creator", "PDF Creator");
pdf.set_info("Author", "WangJun");
pdf.set_info("Title", "Convert to PDF");
pdf.set_info("Subject", "PDF Creator");
pdf.set_info("Keywords", "vckbase.com");
// 开始A4页面
pdf.begin_page(a4_width, a4_height);
// 设置字体为12号微软雅黑
int font_song = pdf.findfont("STSong-Light", "GB-EUC-H", 0);
pdf.setfont(font_song, 12);
// 设置起始点
pdf.set_text_pos(50, a4_height - 50);
// 设置颜色为蓝色
pdf.setcolor("fill", "rgb", 0, 0, 1, 0);
// 输出文字
pdf.show("VCKBASE.COM欢迎您!");
pdf.setcolor("fill", "rgb", 0, 0, 0, 0);
pdf.setfont(font_song, 24);
pdf.continue_text("在线杂志");
// 画两根绿线
pdf.setcolor("stroke", "rgb", 0.24f, 0.51f, 0.047f, 0);
pdf.moveto(50, a4_height - 80);
pdf.lineto(a4_width - 50, a4_height - 80);
pdf.moveto(50, a4_height - 78);
pdf.lineto(a4_width - 50, a4_height - 78);
pdf.stroke();
// 填充一个蓝色方框
pdf.setcolor("fill", "rgb", 0.04f, 0.24f, 0.62f, 0);
pdf.rect(50, 50, a4_width - 100, 70);
pdf.fill();
// 在指定位置输出文字
pdf.setcolor("fill", "rgb", 0, 1, 1, 0);
pdf.setfont(font_song, 16);
pdf.show_xy("版权所有 VCKBASE", a4_width - 280, 60);
// 打开并显示一个图像
int img = pdf.open_image_file("jpeg", "vckbase.jpg", "", 0);
pdf.place_image(img, 200, 400, 1);
pdf.close_image(img);
// 添加附件
pdf.attach_file(a4_width - 50, 0, 0, a4_height - 150,
"vckbase.zip", "VCKBASE", "wj", "zip", "paperclip");
// 结束本页
pdf.end_page();
// 关闭PDF文件
pdf.close();
}
catch(PDFlib::Exception &ex)
{
cerr
0条评论