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; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, SynPdf, StdCtrls, DebenuPDFLibraryDLL1111; type
TForm1 = 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; var
Form1: TForm1; implementation {$R *.dfm} // 读取pdf文本内容以及图片
function ReadPdf(const fileName, saveImagePath: string; var text: string;
var imageFiles: string): string;
var
rPdf: TDebenuPDFLibraryDLL1111;
imageCount, i, j, num, keyStatus, FH, PR: Integer;
begin
Result := '';
num := ;
if Trim(fileName) = '' then
begin
Result := 'Path cannot be empty';
Exit;
end;
if (Trim(saveImagePath) <> '') and (not DirectoryExists(saveImagePath)) then
begin
ForceDirectories(saveImagePath); // 创建目录
end; rPdf := TDebenuPDFLibraryDLL1111.Create('DebenuPDFLibraryDLL1111.dll'); // 库
keyStatus := rPdf.UnlockKey('**********'); // 密钥 秘钥可以购买或者找我要
if keyStatus <> then
begin
Result := 'The library cannot be loaded or unlocked fails';
Exit;
end;
try
rPdf.LoadFromFile(Trim(fileName), '');
// 以直接访问模式打开文件并存储文件句柄
FH := rPdf.DAOpenFile(fileName, '');
for i := to rPdf.DAGetPageCount(FH) do
begin
rPdf.SelectPage(i); // 选区页
text := text + rPdf.GetPageText(); // 获取文本 8:更准确的文本提取算法
if Trim(saveImagePath) <> '' then
begin
imageCount := rPdf.GetPageImageList(); // 获取图片
for j := to rPdf.GetImageListCount(imageCount) do // 遍历当前页中的所有图片
begin
rPdf.SaveImageListItemDataToFile(imageCount, j, ,
saveImagePath + '\' + IntToStr(num) + '.png');
imageFiles := imageFiles + saveImagePath + '\' + IntToStr(num)
+ '.png ; ';
inc(num);
end;
end;
end;
finally
rPdf.Free;
end;
end; // 写pdf
function WritePdf(const fileName, text: string): string;
var
wPdf: TDebenuPDFLibraryDLL1111;
num, wStatus: Integer;
begin
Result := '';
if Trim(fileName) = '' then
begin
Result := 'Path cannot be empty';
Exit;
end;
try
wPdf := TDebenuPDFLibraryDLL1111.Create('DebenuPDFLibraryDLL1111.dll'); // 库
try
wStatus := wPdf.UnlockKey('*************'); // 密钥
if wStatus = then
begin
num := wPdf.AddTrueTypeSubsettedFont('FangSong', text, );
wPdf.SelectFont(num);
wPdf.DrawWrappedText(, , , text);
wPdf.SaveToFile(fileName);
end
else
begin
Result := 'The library cannot be loaded or unlocked fails';
end;
finally
wPdf.Free;
end;
except
on e: Exception do
Result := e.Message;
end;
end; procedure TForm1.btn1Click(Sender: TObject);
var
text, imageFiles: string;
begin
text := '';
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:

delphi使用Foxit Quick PDF Library读写pdf文本和图片的更多相关文章
- C#给PDF文档添加文本和图片页眉
页眉常用于显示文档的附加信息,我们可以在页眉中插入文本或者图形,例如,页码.日期.公司徽标.文档标题.文件名或作者名等等.那么我们如何以编程的方式添加页眉呢?今天,这篇文章向大家分享如何使用了免费组件 ...
- C#添加PDF页眉——添加文本、图片到页眉
页眉常用于显示文档的附加信息,我们可以在页眉中插入文本或者图形,例如,页码.日期.公司徽标.文档标题.文件名或作者名等等.那么我们如何以编程的方式添加页眉呢?今天,这篇文章向大家分享如何使用了免费组件 ...
- quick pdf library控件
quick pdf library库只能在windows环境下运行 1.下载quick pdf library 2.注册控件 进入cmd regsvr32 "C:\Program File ...
- Swift Standard Library Reference.pdf
Swift Standard Library Reference.pdf 下载地址 http://download.csdn.net/detail/swifttrain/7446331 自己的Mark ...
- pure-Python PDF library
# -*- coding: utf-8 -*- # # vim: sw=4:expandtab:foldmethod=marker # # Copyright (c) 2006, Mathieu Fe ...
- 阅读-Calibre Library转PDF、EPUB配置
提示:如果想恢复默认设置,点击"恢复默认值"即可 -----EPUB (MOBI同理)----- 目标:解决转换过程中图片清晰度丢失问题(分辨率太低) 右击-转换书籍-逐个转换 输 ...
- C#写PDF文件类库PDF File Writer介绍
.NET平台开源项目速览(16)C#写PDF文件类库PDF File Writer介绍 阅读目录 1.PDF File Writer基本介绍 2.一个简单的使用案例 3.资源 1年前,我在文章:这 ...
- DjVu、PDF中的隐藏文本
作者:马健邮箱:stronghorse_mj@hotmail.com发布:2012.06.11 目录一.背景二.DjVu中的隐藏文本三.PDF中的隐藏文本 一.背景 目前对于扫描电子文档,网上比较流行 ...
- 校对双层PDF中的隐藏文本
作者:马健邮箱:stronghorse_mj@hotmail.com发布:2012.06.11 目录一.背景二.能够校对的PDF需要满足的条件三.校对工具的选择四.校对过程五.延伸讨论 事先声明:本文 ...
随机推荐
- JS的对象、数组等处理方法:解构
对象方法简写 你可以在定义方法时省略function和 :: const obj = { insteadOfThis: function() { // do stuff }, youCanDoThis ...
- Mysql的查询语句的使用
1. 简单查询 查询所有字段: SELECT * FROM 表名 查询特定字段: SELECT 字段列表 FROM 表名 2. 查询显示行号 - 在字段列表中加入(@rownum := @rownum ...
- Python爬虫实现抓取腾讯视频所有电影【实战必学】
2019-06-27 23:51:51 阅读数 407 收藏 更多 分类专栏: python爬虫 前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问 ...
- 04Shell流程控制
流程控制 if 单分支结构 if 条件测试 then 命令序列 fi 双分支结构 if 条件测试 then 命令序列 else 命令序列 fi 多分支结构 if 条件测试 1 then 命令序列 [e ...
- kubernetes-单机实验(入门)
一.安装kubernetes 实验环境: centos7.0(建议使用7.5版本) 实验机器IP:192.168.1.4 安装方式:yum安装 需求环境:Tomcat+Mysql 1:关闭防火 ...
- JSP请求是如何被处理的?jsp的执行原理
客户端通过浏览器发送jsp请求,服务器端接受到请求后,判断是否是第一次请求该页面,或者该页面是否改变,若是,服务器将jsp页面翻译为servlet,jvm将servlet编译为.class文件,字节码 ...
- django----session相关配置
1. 数据库Session SESSION_ENGINE = 'django.contrib.sessions.backends.db' # 引擎(默认) 2. 缓存Session SESSION_E ...
- iview可收缩侧边菜单实现(支持二级菜单)
想用iview做一个可以伸缩的侧边菜单栏,效果如下: 1.侧边栏收缩前:可以通过点击菜单分类展开子菜单项: 2.可以让用户点击图标动态收缩菜单栏: 3.侧边栏收缩后:只显示菜单分类的图标,鼠标放置在菜 ...
- Unity各平台宏定义
属性 方法 UNITY_EDITOR #define directive for calling Unity Editor scripts from your game code. UNITY_EDI ...
- django基础之day08,分页器从无到有,动态思路解析全过程
*********分页器从无到有的全过程,动态思路解析如下:******** 1.通过book_queryset = models.Book.objects.all()[start_num:end_n ...