delphi使用Foxit Quick PDF Library读写pdf文本和图片
简介:
Debenu Quick PDF Library(PDF编程开发工具)提供一套全方位的 PDF API 函数,帮助您快速简便地处理 PDF 文件。从文档属性的基本操作到创建您自己的 PDF 查看器和 PDF 编辑器,这款软件满足您的所有需求。Quick PDF Library是一款供 PDF 开发人员使用的 SDK,功能强大、无需版税,其中包括超过500个函数,可用于 Delphi、C、C#、C++、ASP、VB6、VB.NET、VBScript、PHP、PowerBASIC 等,使用 ActiveX、DLL、LIB 或 Delphi 版本的库
官方帮助文档:https://www.debenu.com/docs/pdf_library_reference/FunctionGroups.php
可以参考(提取文本和图像并插入新PDF):http://quickpdf.org/forum/extract-text-and-images-and-insert-into-new-pdf_topic1308.html
安装:
首先到官网下载该库,官网地址为:http://www.debenu.com/。本文所使用的版本为11.11,下载后得到一个exe文件:foxit_quick_pdf_library_en.exe。双击exe文件即可安装控件库,安装过程中会要求输入安装目录,选择合适的目录完成安装。
文件GettingStarted.pdf
介绍了在使用该控件库之前需要做的一些准备工作。首先以管理员身份运行命令提示符并切换到安装目录下,然后输入以下命令完成控件的注册。(我这里安装了两个版本所以有1131的版本)
接着把DebenuPDFLibraryDLL1111.dll、DebenuPDFLibraryDLL1111.pas 添加到Delphi项目中
实例程序
程序记得uses DebenuPDFLibraryDLL1111
unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, SynPdf, StdCtrls, DebenuPDFLibraryDLL1111;typeTForm1 = class(TForm)btn1: TButton;edt1: TEdit;edt2: TEdit;lbl1: TLabel;procedure btn1Click(Sender: TObject);procedure FormCreate(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;implementation{$R *.dfm}// 读取pdf文本内容以及图片 function ReadPdf(const fileName, saveImagePath: string; var text: string;var imageFiles: string): string; varrPdf: TDebenuPDFLibraryDLL1111;imageCount, i, j, num, keyStatus, FH, PR: Integer; beginResult := '';num := 0;if Trim(fileName) = '' thenbeginResult := 'Path cannot be empty';Exit;end;if (Trim(saveImagePath) <> '') and (not DirectoryExists(saveImagePath)) thenbeginForceDirectories(saveImagePath); // 创建目录end;rPdf := TDebenuPDFLibraryDLL1111.Create('DebenuPDFLibraryDLL1111.dll'); // 库keyStatus := rPdf.UnlockKey('**********'); // 密钥 秘钥可以购买或者找我要if keyStatus <> 1 thenbeginResult := 'The library cannot be loaded or unlocked fails';Exit;end;tryrPdf.LoadFromFile(Trim(fileName), '');// 以直接访问模式打开文件并存储文件句柄FH := rPdf.DAOpenFile(fileName, '');for i := 1 to rPdf.DAGetPageCount(FH) dobeginrPdf.SelectPage(i); // 选区页text := text + rPdf.GetPageText(8); // 获取文本 8:更准确的文本提取算法if Trim(saveImagePath) <> '' thenbeginimageCount := rPdf.GetPageImageList(0); // 获取图片for j := 1 to rPdf.GetImageListCount(imageCount) do // 遍历当前页中的所有图片beginrPdf.SaveImageListItemDataToFile(imageCount, j, 0,saveImagePath + '\' + IntToStr(num) + '.png');imageFiles := imageFiles + saveImagePath + '\' + IntToStr(num)+ '.png ; ';inc(num);end;end;end;finallyrPdf.Free;end; end;// 写pdf function WritePdf(const fileName, text: string): string; varwPdf: TDebenuPDFLibraryDLL1111;num, wStatus: Integer; beginResult := '';if Trim(fileName) = '' thenbeginResult := 'Path cannot be empty';Exit;end;trywPdf := TDebenuPDFLibraryDLL1111.Create('DebenuPDFLibraryDLL1111.dll'); // 库trywStatus := wPdf.UnlockKey('*************'); // 密钥 if wStatus = 1 thenbeginnum := wPdf.AddTrueTypeSubsettedFont('FangSong', text, 0);wPdf.SelectFont(num);wPdf.DrawWrappedText(50, 750, 500, text);wPdf.SaveToFile(fileName);endelsebeginResult := 'The library cannot be loaded or unlocked fails';end;finallywPdf.Free;end;excepton e: Exception doResult := e.Message;end; end;procedure TForm1.btn1Click(Sender: TObject); vartext, imageFiles: string; begintext := '';imageFiles := '';// showmessage(WritePdf(edt1.Text,edt2.Text)); ShowMessage(ReadPdf(edt1.text, edt2.text, text, imageFiles));lbl1.Caption := text;ShowMessage(text);ShowMessage(imageFiles); end;procedure TForm1.FormCreate(Sender: TObject); begin//readAndWritePDf(); end;end.
运行:
提取的:
原本pdf:
转载于:https://www.cnblogs.com/hhmm99/p/10850069.html
delphi使用Foxit Quick PDF Library读写pdf文本和图片相关推荐
- 使用免费组件给PDF文档添加文本和图片页眉
C#/.NET 使用免费组件给PDF文档添加文本和图片页眉 如今PDF文档与Office文档一样成为了一种通用文档,在日常工作中我们经常会碰到需要给PDF文件添加页眉和页脚/页码等情况,如果你正好是喜 ...
- Haru Free PDF Library——生成PDF的库
PDF是我们极其常用的文件格式,但对如何生成PDF,个人一直觉得很神秘,其实利用一些公开的PDF库,我们就可以直接生成PDF文件,而不用关注PDF文件的内部细节.我知道的PDF库有如CARIO和HAR ...
- Acrobat Pro DC 教程:如何编辑 PDF 文件中的文本和图片?
欢迎观看 Acrobat Pro DC 教程,小编带大家学习 Acrobat Pro DC 的基本工具和使用技巧,了解如何使用 Acrobat Pro DC 轻松快捷地编辑PDF 文档中的文本和图片. ...
- big java 中文版_Big Faceless Java PDF Library
Big Faceless Java PDF Library是一个敏捷的Java类库,用于创建.编辑.显示和打印Acrobat PDF文档.它提供的PDI API函数灵巧而快捷,方便您在您的工程中使用, ...
- 在MFC项目中使用Quick PDF Library Lite读写pdf文件
简介 安装 示例程序 Hello World Draw Text Fonts and Text Set Document Properties Image to pdf Add hyperlink t ...
- Big Faceless PDF Library大型机的任何Java平台运行
Big Faceless PDF Library大型机的任何Java平台运行 Big Faceless PDF Library 是一个 PDF 库,用于创建.编辑.显示和打印 Acrobat PDF ...
- pdf阅读器下载支持win7_福昕PDF阅读器(Foxit Reader)下载|福昕PDF阅读器(Foxit Reader) 9.6.1.25160 官方版...
小编留意过关于这款软件的反馈意见,可能大部分都不是软件的问题,而是很多网站并没有把好用的版本上传,还有用户电脑适配的问题,这些需要多有留意. 福昕PDF阅读器(Foxit Reader)功能特色: 软 ...
- Big Faceless Java PDF Library[bfopdf]
用于创建.编辑.显示和打印 Acrobat PDF 文档的最智能的 PDF 库.PDF API 体积小.速度快.易于使用并集成到您的项目中,并且完全用 Java 编写. 产品概览 PDF 库读取和写入 ...
- Big Faceless Java PDF Library[BFO]
Big Faceless Organization (BFO)是KSM有限公司的贸易名称,是一家英国的私营公司.我们为国际性的企业对企业的电子商务市场开发高质量的Java软件组件.BFO成立于1998 ...
最新文章
- win10如何设置麦克风?
- 启明云端分享|sigmastar SSW101B WiFi 非信令测试说明
- UVA225Golygons 黄金图形
- java字符串与数组比较大小_java-如何将存储在数组中的字符串与简单字符串进行比较?...
- 新研究表明 深层神经网络的功能存在局限性
- 云+X案例展 | 传播类:富通云腾加速联通云数字化转型步伐
- 字节跳动全资收购北京麦田?回应称只收购了麦田旗下一家公司
- iOS 手记 - 计算文字高度/宽度:- (CGSize)sizeWithAttributes:(NSDictionaryNSString *,id *)attrs...
- vue dve环境static无法被外部访问_vue项目性能优化(代码层面)
- MySQL导入数据出错
- dude由于目标计算机,The Dude的教程
- Linux学习笔记(更新中)
- 板材品牌之生态板吊顶好还是桑拿板好
- node.js如何升级
- 火狐浏览器安全连接失败解决办法
- 和李兄之《定风波· 冬峦轻寒桂落香》一首
- 机器人图形变变变_中班数学活动——图形变变变 教案
- 第10章两个独立样本的t检验
- Apple ID,APP ID,Bundle ID,iOS Certificates,iOS Provisioning Profiles各自含义以及之间的关系
- CAD图层亮度的设置
热门文章
- 使用Visual Studio Code编写markdown文件以及转成PDF格式和markdown常用语法
- 沧小海笔记本之xilinx srio核的学习记录之目录
- html网站设计基础
- 如何打造极速F1赛事?乐视云用六路信号还原比赛现场
- itunes无法安装到win7系统更新服务器,Win7旗舰版电脑无法安装itunes怎么办
- LT8522EX 是 Lontium 的矩阵开关芯片基于两路输入,输出 (VGA 和 HDMI)
- SpringCloud Gateway 重试路由器的过滤器
- ui设计现状与意义_UI设计的现状如何?
- sklearn中实现多分类任务(OVR和OVO)
- 58到家数据库30条军规解读(58沈剑)