DFLib是用于创建PDF文档的开发库,提供了简单易用的API,隐藏了创建PDF的复杂细节且不需要第3方软件的支持。PDFLib库对于个人是免费的,对于商业产品需要购买许可。

PDFlib [1]  是一个帮助您生成符合 Adobe 的可移植文档格式 (PDF) 文件的中间件。 PDFlib 充当用户自己程序的后端。当应用程序员负责抽取要处理的数据时,PDFlib承担生成 PDF 输出(图解数据)的任务。PDFlib 让您无需再关注 PDF 的内部细节问题,并提供了各种方法来帮助您设置输出的格式。发布软件包在同一个二进制文件中包含了不同的产品:

> PDFlib 包含创建 PDF 输出(包括文本、矢量图形和图像以及超文本元素)所必需的所有函数。 PDFlib 为放置单行或多行文本、图像和创建表提供了强大的格式化功能。

> PDFlib+PDI 包括所有 PDFlib 函数,以及用于在输出的文件中嵌入现有的 PDF 文档页PDF 输入库 (PDI),及用于查询导入文档中任意 PDF 对象(例如列出页面上的所有字体、查询元数据等等)的 pCOS 接口。

> PDFlib Personalization Server (PPS) 包括 PDFlib+PDI 以及用于自动填充 PDFlib 块的附加函数。块是页上的占位矩形,可以用文本、图像或 PDF 页进行填充。可以使用适用于Adobe Acrobat (Mac 或 Windows)的 PDFlib 块插件交互式创建块,并使用 PPS 自动进行填充。该插件包含在 PPS 中。

1.获取文件夹中所有的pdf文件路径

从文件夹中遍历pdf文件,后续的处理流程可写在遍历循环中。

CFileFind ff;strMusicFolder += _T("\\");strMusicFolder += _T("*.pdf");BOOL res = ff.FindFile(strMusicFolder);while (res){res = ff.FindNextFile();if (!ff.IsDirectory() && !ff.IsDots()){AfxMessageBox(ff.GetFilePath());}}ff.Close();

2.创建目标pdf文件

分割与合并结果的输出pdf文档。

compatibility=1.7版本号

        CString dst;PDFlib m_oPDF;dst = src + _T("\\Dst.pdf");if (m_oPDF.begin_document(dst.GetString(), L"compatibility=1.7") == -1){AfxMessageBox(L"创建pdf文件失败!");return false;}

3.循环导入待操作pdf

依次读入待操作的pdf,分割写入操作完成后关闭操作pdf。

 int pdfdeletesheet; //保留的pdf抬头页数
int nSrcPDFID;
while (res){res = ff.FindNextFile();if (!ff.IsDirectory() && !ff.IsDots()){CString show = ff.GetFilePath().GetString();if (show == dst){continue;}count++;if (count == 1){nSrcPDFID = m_oPDF.open_pdi_document(ff.GetFilePath().GetString(), L"");if (nSrcPDFID == -1){AfxMessageBox(L"打开源pdf文件失败!");return false;}int endpage = (int)m_oPDF.pcos_get_number(nSrcPDFID, L"length:pages");//总页数auto fWidth = (m_oPDF.pcos_get_number(nSrcPDFID, L"pages[0]/width"));//宽度595auto fHeight = m_oPDF.pcos_get_number(nSrcPDFID, L"pages[0]/height");//高度842int nFontId = m_oPDF.load_font(L"微软雅黑", L"host", L"");if (nFontId == -1){printf(u8"##PdfAddWaterMarker, 默认字体(微软雅黑)加载失败!");return false;}for (int pageno = 1; pageno <= endpage; pageno++){//获取准备绘制的页面标识int page = m_oPDF.open_pdi_page(nSrcPDFID, pageno, L"");if (page == -1){return false;}//向文档添加新页,并指定各种选项 L""m_oPDF.begin_page_ext(fWidth, fHeight, L"");m_oPDF.setfont(nFontId, 18);//在页面上放置导入的PDF页面,并根据不同的选项进行操作。m_oPDF.fit_pdi_page(page, 0, 0, L"adjustpage");m_oPDF.end_page_ext(L"");m_oPDF.close_pdi_page(page);}m_oPDF.close_pdi_document(nSrcPDFID);}else{nSrcPDFID = m_oPDF.open_pdi_document(ff.GetFilePath().GetString(), L"");if (nSrcPDFID == -1){//printf(u8"##打开源pdf文件失败!");AfxMessageBox(L"打开源pdf文件失败!");return false;}int endpage = (int)m_oPDF.pcos_get_number(nSrcPDFID, L"length:pages");//总页数auto fWidth = (m_oPDF.pcos_get_number(nSrcPDFID, L"pages[0]/width"));//宽度595auto fHeight = m_oPDF.pcos_get_number(nSrcPDFID, L"pages[0]/height");//高度842int nFontId = m_oPDF.load_font(L"微软雅黑", L"host", L"");if (nFontId == -1){printf(u8"##PdfAddWaterMarker, 默认字体(微软雅黑)加载失败!");return false;}for (int pageno = 1+pdfdeletesheet; pageno <= endpage; pageno++){//获取准备绘制的页面标识int page = m_oPDF.open_pdi_page(nSrcPDFID, pageno, L"");if (page == -1){return false;}//向文档添加新页,并指定各种选项 L""m_oPDF.begin_page_ext(fWidth, fHeight, L"");m_oPDF.setfont(nFontId, 18);//在页面上放置导入的PDF页面,并根据不同的选项进行操作。m_oPDF.fit_pdi_page(page, 0, 0, L"adjustpage");m_oPDF.end_page_ext(L"");m_oPDF.close_pdi_page(page);}m_oPDF.close_pdi_document(nSrcPDFID);}//AfxMessageBox(ff.GetFilePath());}}

pdflib使用:pdf的分割与合并相关推荐

  1. 【Python】用Python实现PDF文件分割和合并

    有的时候有剪裁PDF的需求,虽然有软件实现了这样的功能,但有时候会遇到这种情况 既然如此,为何不自己实现这个功能呢?上代码 # 导入读写pdf模块 from PyPDF2 import PdfFile ...

  2. PDF工具箱-分割提取合并

    说明文档待补充... Tkinter GUI界面: Github地址 """ PDF文件分割合并工具需安装PyPDF2: pip install PyPDF2PyInst ...

  3. 在线分割、合并PDF文件网站

    在线分割.合并PDF文件网站 今天博客也没想到什么好写的,干脆就向大家分享几个收藏夹里的在线工具吧!本文介绍的这两个分别是在线分割和在线合并PDF文件网站,如果平时恰好遇到电脑里没安装这类软件,这样的 ...

  4. thinkphp5 图片压缩旋转_【好工具】在线免费无限制的PDF处理工具(转换、编辑、分割、合并、压缩)...

    在线好用的 PDF 编辑工具,PDF 转文档,PDF 压缩.编辑.分割不再难,解密 PDF 文档也在行,快来试试- 作者 & 编辑 | Leong SmallPDF SmallPDF http ...

  5. python 知乎 合并 pdf_有什么比较好的 PDF 分割、合并软件?

    用过之后体验最棒的还是迅捷PDF转换器,PDF分割.PDF合并这些操作都相当的方便快捷而且质量很高! 官网:迅捷PDF转换器 - 多功能的PDF转换成Word|JPG|PPT转换器​www.xunji ...

  6. PDF分割与合并(充分利用Spire的bug实现操作PDF)

    首先声明,文章虽为原创,但使用的代码,可能借鉴其他人的作品,如有侵权请联系删除. 内容主要分三个模块: 1:将需要处理的PDF文件分割为10页的多个PDF 2:使用冰蓝的包(spire)对分割后的PD ...

  7. python合并pdf_实用 | 手把手教你用Python分割与合并PDF

    访问flyai.club,一键创建你的人工智能项目. 在工作中,可能会涉及处理 pdf 文件,PyPDF2提供了读,分割,合并,文件转换等多种操作,可以让你轻松的处理 pdf 文件.在本文中,我们将学 ...

  8. python对PDF分割、合并、裁剪等

    PyPDF2 PyPDF2是一个第三方的python PDF库,它能够对PDF文件进行分割.合并.裁剪和转换页面. 另外,它还可以对PDF文件添加自定义数据.水印.密码,也可以从PDF文件中检索出文本 ...

  9. 【c#系列】PDF进行操作-浏览、分割、合并、插入、删除(1)

    工作所需,需要对PDF进行浏览,分割.插入.删除和合并等功能,并不需要其它多余的功能,一番搜索后,利用开源代码,终于实现了简单的操作,把开发流程进行的简单记录以备不时之需. 先预览一下: 一.开发环境 ...

  10. 在线免费无限制的 PDF 处理工具(转换、编辑、分割、合并、压缩)

    SmallPDF SmallPDF 是一个功能一应俱全.简单好用的线上 PDF 处理工具.主要的大类功能包括转档 & 压缩.分割 & 合并.检视 & 编辑.签署等.分为收费和免 ...

最新文章

  1. collection 源码
  2. CSS中使用flex弹性布局实现上下左右垂直居中排列并设置子元素之间的间距
  3. android jar 加密
  4. [转帖]Beyond Compare如何进行二进制比较
  5. linux群ping服务器各网段脚本
  6. 客户分析表格怎么做 财务合并报表培训 5分钟看懂财务报表
  7. HTTPS(一) -- 基础知识(密钥、对称加密、非对称加密、数字签名、数字证书)
  8. 微软亚洲研究院2017年笔试编程题
  9. QT中的LIBS用法
  10. 《黑客秘笈——渗透测试实用指南(第2版)》—第1章1.5节构建渗透测试环境...
  11. 光线cms,如何增加像百度一样的智能提示
  12. 2019.9.27,SAP成都研究院数字创新空间团队建设,射箭和游泳
  13. 十个经典的Android开源项目
  14. 500万像素视频会议摄像机 高清视频会议摄像机
  15. 推荐几款渗透测试常用的脚本(记得收藏)
  16. 专科咋了?5年时间从三流外包到阿里P6(Android岗),他逆袭成功
  17. ThinkPad R400系列恢复光盘
  18. 智能手机的终场战事:小步快跑进入“智慧时代”
  19. How to Perfectly Uninstall Nero 11
  20. WiFi基本知识(详细)

热门文章

  1. 前端神器-网站图片抓取精灵V1.0正式发布
  2. SQL注入攻击原理与防御措施
  3. 高德地图 API 搜索服务 搜索定位 用不了
  4. HTML认识数字游戏,小班数学游戏教案《认识数字》
  5. 实用新型专利申请文件撰写示例
  6. linkedin 第三方网站登录(JavaScript SDK)
  7. 电脑是否入侵,是否留有后门
  8. 2020年带你学会全网营销
  9. Vim快捷键(三):剪切复制粘贴
  10. 使用java命令执行函数反弹windows-shell