delphi PDFium 提取文档内容
<h1 id="pdfium-提取文档内容">PDFium 提取文档内容</h1><h2 id="属性和方法">属性和方法</h2>
<h3 id="tpdfbitmapcount">TPdf.BitmapCount</h3>
<pre><code class="language-delphi">property BitmapCount: Integer;
</code></pre>
<p>PDF 页面内的 PDF 图像对象数。</p>
<h3 id="tpdfbitmap">TPdf.Bitmap[]</h3>
<pre><code class="language-delphi">property Bitmap: TBitmap;
</code></pre>
<p>指定 PDF 图像对象的位图数据。 索引值必须是 0 到 BitmapCount - 1。</p>
<h3 id="tpdftitle">TPdf.Title</h3>
<pre><code class="language-delphi">property Title: WString;
</code></pre>
<p>PDF 文档中的标题。只读属性。</p>
<h3 id="tpdfsubject">TPdf.Subject</h3>
<pre><code class="language-delphi">property Subject: WString;
</code></pre>
<p>PDF 文档中的主题。只读属性。</p>
<h3 id="tpdfauthor">TPdf.Author</h3>
<pre><code class="language-delphi">property Author: WString;
</code></pre>
<p>PDF 文档中的作者。只读属性。</p>
<h3 id="tpdfkeywords">TPdf.Keywords</h3>
<pre><code class="language-delphi">property Keywords: WString;
</code></pre>
<p>PDF 文档中的关键字。只读属性。</p>
<h3 id="tpdfcreator">TPdf.Creator</h3>
<pre><code class="language-delphi">property Creator: WString;
</code></pre>
<p>PDF 文档中的生成器。只读属性。</p>
<h3 id="tpdfproducer">TPdf.Producer</h3>
<pre><code class="language-delphi">property Producer: WString;
</code></pre>
<p>PDF 文档中的创建工具。只读属性。</p>
<h3 id="tpdfmodifieddate">TPdf.ModifiedDate</h3>
<pre><code class="language-delphi">property ModifiedDate: WString;
</code></pre>
<p>PDF 文档中的上次修改时间。只读属性。</p>
<h3 id="tpdfcreationdate">TPdf.CreationDate</h3>
<pre><code class="language-delphi">property CreationDate: WString;
</code></pre>
<p>PDF 文档中的创建时间。只读属性。</p>
<h3 id="tpdftext">TPdf.Text</h3>
<pre><code class="language-delphi">function Text(StartIndex: Integer = 0; Count: Integer = MaxInt): WString;
</code></pre>
<p>从页面中提取文本字符串。</p>
<p><strong>参数</strong></p>
<p><em>StartIndex</em> 字符开始索引。从 0 开始的。</p>
<p><em>Count</em> 提取数量。</p>
<p><strong>返回值</strong></p>
<p>提取的字符串</p>
<blockquote>
<p><em>StartIndex</em> 和 <em>Count</em> 参数确定要提取的字符。</p>
</blockquote>
<h2 id="例子">例子</h2>
<h3 id="提取文本">提取文本</h3>
<p>在窗体上放置TPdf组件<em>Pdf1</em> 和 TMemo组件<em>Memo1</em></p>
<pre><code class="language-delphi">procedure TForm1.Button7Click(Sender: TObject);
var
I: Integer;
begin
try
//读取pdf文件
Pdf1.FileName := 'C:\LargeFile.pdf';
Pdf1.Active := True;
//清空列表
Memo1.Lines.Clear;
//循环pdf页面
for I := 1 to Pdf1.PageCount do
begin
Pdf1.PageNumber := I;
Memo1.Lines.Add(IntToStr(I) + '------------------');
//提取当前页面文本
Memo1.Lines.Add(Pdf1.Text);
end;
finally
Pdf1.Active := False;
end;
end;
</code></pre>
<h3 id="提取图片">提取图片</h3>
<p>在窗体上放置TPdf组件<em>Pdf1</em></p>
<pre><code class="language-delphi">procedure TForm1.Button8Click(Sender: TObject);
var
I, J: Integer;
Bitmap: TBitmap;
begin
try
//读取pdf文件
Pdf1.FileName := 'C:\LargeFile.pdf';
Pdf1.Active := True;
//循环pdf页面
for I := 1 to Pdf1.PageCount do
begin
Pdf1.PageNumber := I;
//循环当前页面图片
for J := 0 to Pdf1.BitmapCount - 1 do
begin
//提取图片并保存
Bitmap := Pdf1.Bitmap;
try
Bitmap.SaveToFile('C:\bmp_' + IntToStr(I) + '_' + IntToStr(J) + '.bmp');
finally
Bitmap.Free;
end;
end;
end;
finally
Pdf1.Active := False;
end;
end;
</code></pre>
<h3 id="提取文档信息">提取文档信息</h3>
<p>在窗体上放置TPdf组件<em>Pdf1</em> 和 TMemo组件<em>Memo1</em></p>
<pre><code class="language-delphi">procedure TForm1.Button9Click(Sender: TObject);
begin
try
//读取pdf文件
Pdf1.FileName := 'C:\LargeFile.pdf';
Pdf1.Active := True;
//读取文档信息
Memo1.Lines.Add('标题 ' + Pdf1.Title);
Memo1.Lines.Add('主题 ' + Pdf1.Subject);
Memo1.Lines.Add('作者 ' + Pdf1.Author);
Memo1.Lines.Add('关键字 ' + Pdf1.Keywords);
Memo1.Lines.Add('生成器 ' + Pdf1.Creator);
Memo1.Lines.Add('创建工具 ' + Pdf1.Producer);
Memo1.Lines.Add('上次修改时间 ' + Pdf1.ModifiedDate);
Memo1.Lines.Add('创建时间 ' + Pdf1.CreationDate);
finally
Pdf1.Active := False;
end;
end;
</code></pre><br><br>
来源:https://www.cnblogs.com/txgh/p/15778548.html
頁:
[1]