delphi SynPDF 常用功能
<h1 id="synpdf-常用功能">SynPDF 常用功能</h1><h2 id="属性和方法">属性和方法</h2>
<h3 id="tpdfdocumentcreate">TPdfDocument.Create</h3>
<pre><code class="language-delphi">constructor Create(AUseOutlines: Boolean=false; ACodePage: integer=0;
APDFA1: boolean=false; AEncryption: TPdfEncryption=nil);
</code></pre>
<p>使用 VCL Canvas 属性创建 PDF 文档实例。</p>
<p><strong>参数</strong></p>
<p><em>AUseOutlines</em> 用于指定PDF文档是否将使用大纲。</p>
<p><em>ACodePage</em> 用于指定PDF文档文本编码的字符集; 默认情况下(<code>ACodePage = 0</code>),使用当前系统字符集。</p>
<p><em>APDFA1</em> 是否创建兼容 PDF/A 的文档。</p>
<p><em>AEncryption</em> 设置加密。</p>
<blockquote>
<p>默认 A4 纸张大小。</p>
<p>只有 Win-Ansi 编码允许使用嵌入的标准字体。</p>
</blockquote>
<h3 id="tpdfdocumentgdiaddpage">TPdfDocumentGDI.AddPage</h3>
<pre><code class="language-delphi">function AddPage: TPdfPage;
</code></pre>
<p>在当前PDF文档中添加一个页面。</p>
<h3 id="tpdfdocumentsavetofile">TPdfDocument.SaveToFile</h3>
<pre><code class="language-delphi">function SaveToFile(const aFileName: TFileName): boolean;
</code></pre>
<p>将PDF文件内容保存到指定的文件中。</p>
<p><strong>参数</strong></p>
<p><em>aFileName</em> PDF文档的名称。</p>
<p><strong>返回值</strong></p>
<p>在任何写入错误时返回 <em>False</em>(例如,如果文件在PDF阅读器中打开)。</p>
<h3 id="tpdfdocumentgdivclcanvas">TPdfDocumentGDI.VCLCanvas</h3>
<pre><code class="language-delphi">property VCLCanvas: TCanvas;
</code></pre>
<p>当前页面的 VCL Canvas。</p>
<h3 id="tpdfdocumentdefaultpapersize">TPdfDocument.DefaultPaperSize</h3>
<pre><code class="language-delphi">property DefaultPaperSize: TPDFPaperSize;
</code></pre>
<p>默认的页面大小,用于每个新页面的创建(例如<code>AddPage</code>方法调用)。</p>
<blockquote>
<p>写入此属性会将默认纸张方向重置为纵向:如果需要,必须显式地将<code>DefaultPageLandscape</code>设置为true。</p>
</blockquote>
<h3 id="tpdfdocumentdefaultpagelandscape">TPdfDocument.DefaultPageLandscape</h3>
<pre><code class="language-delphi">property DefaultPageLandscape: boolean;
</code></pre>
<p>默认的页面方向。</p>
<blockquote>
<p>如果方向不正确,调用此属性将交换默认页面宽度和高度。</p>
</blockquote>
<h3 id="tpdfpagepagewidth">TPdfPage.PageWidth</h3>
<pre><code class="language-delphi">property PageWidth: integer;
</code></pre>
<p>当前页面宽度,以PDF坐标1/72英寸表示。</p>
<h3 id="tpdfpagepageheight">TPdfPage.PageHeight</h3>
<pre><code class="language-delphi">property PageHeight: integer;
</code></pre>
<p>当前页面高度,以PDF坐标1/72英寸表示。</p>
<h3 id="tpdfdocumentinfo">TPdfDocument.Info</h3>
<pre><code class="language-delphi">property Info: TPdfInfo;
</code></pre>
<p>有关PDF文档的信息。</p>
<h3 id="tpdfinfoauthor">TPdfInfo.Author</h3>
<pre><code class="language-delphi">property Author: string;
</code></pre>
<p>指定生成文档中的作者。</p>
<h3 id="tpdfinfocreator">TPdfInfo.Creator</h3>
<pre><code class="language-delphi">property Creator: string;
</code></pre>
<p>指定生成文档中的生成器。</p>
<h3 id="tpdfinfokeywords">TPdfInfo.Keywords</h3>
<pre><code class="language-delphi">property Keywords: string;
</code></pre>
<p>指定生成文档中的关键字。</p>
<h3 id="tpdfinfosubject">TPdfInfo.Subject</h3>
<pre><code class="language-delphi">property Subject: string;
</code></pre>
<p>指定生成文档的主题。</p>
<h3 id="tpdfinfotitle">TPdfInfo.Title</h3>
<pre><code class="language-delphi">property Title: string;
</code></pre>
<p>指定生成文档的标题。</p>
<h3 id="tpdfpapersize">TPDFPaperSize</h3>
<p>可用的已知纸张大小。</p>
<p><strong>unit</strong></p>
<p>SynPdf</p>
<pre><code class="language-delphi">TPDFPaperSize = (
psA4, psA5, psA3, psA2, psA1, psA0, psLetter, psLegal, psUserDefined);
</code></pre>
<h2 id="例子">例子</h2>
<h3 id="创建文档">创建文档</h3>
<pre><code class="language-delphi">uses SynPdf;
procedure TForm1.Button1Click(Sender: TObject);
var
Pdf: TPdfDocumentGDI;
begin
//创建PDF文档
Pdf := TPdfDocumentGDI.Create;
try
//新增页面
Pdf.AddPage;
//向Canvas输出内容
with Pdf.VCLCanvas do
begin
Pen.Color := clRed;
Pen.Width := 2;
Brush.Color := clInfoBk;
Rectangle(100, 100, 400, 200);
Font.Name := '宋体';
Font.Size := 20;
TextOut(200, 120, '测试内容');
Pen.Color := clYellow;
Pen.Width := 5;
MoveTo(100, 250);
LineTo(400, 250);
end;
//添加新页面,Canvas指向新增页面
Pdf.AddPage;
with Pdf.VCLCanvas do
begin
Font.Name := '宋体';
Font.Size := 20;
TextOut(200, 120, '新增页面');
end;
//保存文件
Pdf.SaveToFile('C:\Users\Administrator\Desktop\ceshi.pdf');
finally
Pdf.Free;
end;
end;
</code></pre>
<h3 id="添加页面">添加页面</h3>
<pre><code class="language-delphi">uses SynPdf;
procedure TForm1.Button2Click(Sender: TObject);
var
Pdf: TPdfDocumentGDI;
Page: TPdfPage;
begin
//创建PDF文档
Pdf := TPdfDocumentGDI.Create;
try
//设置默认页面大小
Pdf.DefaultPaperSize := psA4;
//新增页面
Pdf.AddPage;
Page := Pdf.AddPage;
//设置指定页面大小
Page.PageWidth := 400;
Page.PageHeight := 300;
Pdf.SaveToFile('C:\Users\Administrator\Desktop\ceshi.pdf');
finally
Pdf.Free;
end;
end;
</code></pre>
<h3 id="添加文档信息">添加文档信息</h3>
<pre><code class="language-delphi">uses SynPdf;
procedure TForm1.Button3Click(Sender: TObject);
var
Pdf: TPdfDocumentGDI;
begin
//创建PDF文档
Pdf := TPdfDocumentGDI.Create;
try
Pdf.AddPage;
//设置文档的信息
with Pdf.Info do
begin
Title := '文档标题';
Subject := '文档主题';
Author := '文档作者';
Creator := '文档生成器';
Keywords := '文档关键字';
end;
Pdf.SaveToFile('C:\Users\Administrator\Desktop\ceshi.pdf');
finally
Pdf.Free;
end;
end;
</code></pre><br><br>
来源:https://www.cnblogs.com/txgh/p/16129900.html
頁:
[1]