一起学习

利用PDFLib生成PDF文档

作者:浙江省温岭电信局 王骏

下载本文示例工程

下载PDFLib

本文代码生成的PDF文档效果图

一、PDF介绍

PDF是Portable Document Format的缩写,PDF文件格式是国际通用的电子文档交换事实标准,被许多国家采用作为电子文档交换。PDF文件可以在各种平台下阅读、编辑、发布。该文件格式支持字体、图像、甚至任何附件的嵌入。您可以通过免费的Adobe Acrobat Reader来阅读、编辑PDF文档。

二、PDFLib介绍

PDFLib是用于创建PDF文档的开发库,提供了简单易用的API,隐藏了创建PDF的复杂细节且不需要第3方软件的支持。PDFLib库对于个人是免费的,对于商业产品需要购买许可, 您可以到VC知识库的工具与资源栏目下载:。

三、在VC 中使用PDFLib

本文例子中使用的PDFLib是4.0.2版本,与5.0版本差不多。5.0免费版本中有一个的水印,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,里面包含了该手册)。

下载本文示例代码

利用PDFLib生成PDF文档利用PDFLib生成PDF文档利用PDFLib生成PDF文档利用PDFLib生成PDF文档利用PDFLib生成PDF文档利用PDFLib生成PDF文档利用PDFLib生成PDF文档利用PDFLib生成PDF文档利用PDFLib生成PDF文档利用PDFLib生成PDF文档利用PDFLib生成PDF文档利用PDFLib生成PDF文档

aix中c语言生成pdf文档,利用PDFLib生成PDF文档相关推荐

  1. c语言调用pdf文档,使用PDFLib生成PDF文档方法介绍(C语言版)

    本文简单介绍了PDFLib生成PDF文档(C语言版)的基本使用方法. 1.基本环境 ① 打开.关闭.文档信息设定: 新建PDFLib对象,PDF_new() 设定错误处理的方式,PDF_set_par ...

  2. 利用PDFLib生成PDF文档

    本文代码生成的PDF文档效果图 一.PDF介绍 PDF是Portable Document Format的缩写,PDF文件格式是国际通用的电子文档交换事实标准,被许多国家采用作为电子文档交换.PDF文 ...

  3. 利用Django生成PDF文档

    利用Django生成PDF文档 本小节说明如何利用Django视图动态生成PDF文档.此功能是由优秀的开源Python PDF库ReportLab实现的. 动态生成PDF文档的好处在于你可以定制PDF ...

  4. 利用OpenXml生成Word2007文档

    一.OpenXml简介 利用C#生成Word文档并非一定要利用OpenXml技术,至少可以使用微软提供的Office相关组件来编程,不过对于Office2007(确切的说是Word.Excel和Pow ...

  5. 利用OpenXml生成Word2007文档(转)

    转自:http://blog.csdn.net/francislaw/article/details/7568317 一.OpenXml简介 利用C#生成Word文档并非一定要利用OpenXml技术, ...

  6. matlab 生成 word 表格,利用MATLAB生成Word文档.doc

    利用MATLAB生成Word文档 function ceshi_Word %利用MATLAB生成Word文档 % ceshi_Word % % Copyright 2009 - 2010 xiezhh ...

  7. matlab2015 word,利用MATLAB生成Word文档

    <利用MATLAB生成Word文档>由会员分享,可在线阅读,更多相关<利用MATLAB生成Word文档(5页珍藏版)>请在人人文库网上搜索. 1.function ceshi_ ...

  8. 利用iText生成pdf报表

    任务书.期中检查.延期申请书 一.    需要用到的支持 包支持:向java工程导入两个包 iText.jar,iTextAsian.jar(汉字支持包) 软件支持:Adobe Acrobat Pro ...

  9. java 写数据到pdf模板_java利用itext填写pdf模板并导出

    1.先用word做出界面 2.再转换成pdf格式 3.用Adobe Acrobat 打开你刚刚用word转换成的pdf 会出现如下界面 下一步 点击浏览,选择刚才你转换好的pdf 下一步 4.打开后它 ...

  10. itext生成pdf间距_使用itext生成pdf

    在企业的信息系统中,报表处理一直占比较重要的作用,本文将介绍一种生成PDF报表的Java组件--iText.通过 在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超级连接显示或下载得到 ...

最新文章

  1. 创建 Pool VIP - 每天5分钟玩转 OpenStack(122)
  2. LintCode 用递归打印数字
  3. 新入职一家公司如何梳理业务?
  4. 02.centos6.4找不到ifcfg-eth0(静态ip配置)
  5. 多重循环练习之九九乘法表
  6. Java程序优化之享元模式
  7. ubuntu18.04管理redis
  8. 我爱计算机视觉干货集锦分类汇总(2019年1月20日)
  9. linux静态网络ip dns怎么设置,Linux下如何配置静态IP设置DNS和主机名?
  10. Function spec
  11. 机器学习笔记2 – sklearn之iris数据集
  12. 系统找不到指定的文件。 : No installed service named Apache
  13. 提取Redis事件机制源码为我所用
  14. react中使用谷歌地图并定位
  15. i = i++, i = ++i, j = i++, j = ++i 的区别
  16. 深度学习升级打怪之self attention笔记
  17. 改造ueditor 在线图片功能 添加 删除 功能
  18. 类unix系统中启动脚本记录
  19. 前后端交互ajax和axios入门讲解,以及http与服务器基础
  20. 2007年河北省高校计算机一级考试大纲及心得

热门文章

  1. java 8 官网下载地址
  2. JDK8 官方下载地址
  3. Ghost module
  4. 华为交换机配置时区_把华为交换机设置成时钟源服务器(NTP)
  5. rost反剽窃检测系统_剽窃上瘾了?该戒戒了
  6. matlab2014演示在哪,matlab2014安装时crack文件在哪里,从哪个文件下面
  7. Java拦截器验证失败时返回Json格式数据
  8. 谷粒学院【网上教育】总结
  9. ascii码01100001_ASCII 码对照表详解 - 文章
  10. 计算机代码编程知识,编程基础知识