提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|其它|编辑:郝浩|2011-09-23 11:51:55.000|阅读 894 次
概述:本文主要介绍如何在VC++中使用PDFLib,并生成PDF文档。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
一、PDF介绍
PDF是Portable Document Format的缩写,PDF文件格式是国际通用的电子文档交换事实标准,被许多国家采用作为电子文档交换。PDF文件可以在各种平台下阅读、编辑、发布。该文件格式支持字体、图像、甚至任何附件的嵌入。您可以通过免费的Adobe Acrobat Reader来阅读、编辑PDF文档。
二、PDFLib介绍
PDFLib是用于创建PDF文档的开发库,提供了简单易用的API,隐藏了创建PDF的复杂细节且不需要第3方软件的支持。PDFLib库对于个人是免费的,对于商业产品需要购买许可, 您可以到VC知识库的工具与资源栏目下载://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 << "错误信息:" << ex.get_message() << endl;
return -1;
}
catch(char *pStrErr)
{
cerr << pStrErr << endl;
return -1;
}
catch(...)
{
cerr << "发生未知异常!" << endl;
return -1;
}
return 0;
}
PDFLIB还有许多功能,比如书签、PDF导入等功能,具体可以参考PDFLIB函数手册(可以到VC知识库中下载pdflib5.0,里面包含了该手册)。
(慧都控件网版权所有,转载请注明出处,否则追究法律责任)
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
文章转载自:网络转载面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢