记有说 發表於 2022-4-29 14:56:00

delphi SynPDF 文档设置

<h1 id="synpdf-文档设置">SynPDF 文档设置</h1>
<h2 id="属性和方法">属性和方法</h2>
<h3 id="tpdfdocumentcompressionmethod">TPdfDocument.CompressionMethod</h3>
<pre><code class="language-delphi">property CompressionMethod: TPdfCompressionMethod;
</code></pre>
<p>用于页面内容存储的压缩方法。</p>
<blockquote>
<p>在创建类实例时默认值为 <em>cmFlateDecode</em>。</p>
</blockquote>
<h3 id="tpdfcompressionmethod">TPdfCompressionMethod</h3>
<p>指定页面内容压缩。</p>
<p><strong>unit</strong></p>
<p>SynPdf</p>
<pre><code class="language-delphi">TPdfCompressionMethod = (
cmNone, cmFlateDecode);
</code></pre>
<ul>
<li><em>cmNone</em> 不压缩。</li>
<li><em>cmFlateDecode</em> 使用平面压缩进行压缩。</li>
</ul>
<h3 id="tpdfdocumentembeddedttf">TPdfDocument.EmbeddedTTF</h3>
<pre><code class="language-delphi">property EmbeddedTTF: boolean;
</code></pre>
<p>设置为<em>True</em>,使用的 Truetype 字体将被嵌入到PDF内容中。<strong>默认值</strong> <em>False</em>。</p>
<blockquote>
<p>默认值为<em>False</em>,以节省磁盘空间和产生微小的PDF。</p>
</blockquote>
<h3 id="tpdfdocumentembeddedwholettf">TPdfDocument.EmbeddedWholeTTF</h3>
<pre><code class="language-delphi">property EmbeddedWholeTTF: boolean;
</code></pre>
<p>设置为<em>True</em>,嵌入的 Truetype 字体将完全嵌入PDF文件中;设置为 <em>False</em>,表示将 TTF 字体子集存储到PDF文件中,即只存储使用的字形。<strong>默认值</strong> <em>False</em>。</p>
<blockquote>
<p>此选项仅在 Windows XP 或更高版本上运行时可用。</p>
<p>设置<code>EmbeddedTTF</code>为<em>True</em>,则将TTF字体子集存储到PDF文件中,即只存储使用的字体字形。</p>
<p>设置<code>EmbeddedWholeTTF</code>为<em>True</em>,则整个字体文件按原样嵌入PDF文件中。</p>
</blockquote>
<h3 id="tpdfdocumentembeddedttfignore">TPdfDocument.EmbeddedTTFIgnore</h3>
<pre><code class="language-delphi">property EmbeddedTTFIgnore: TRawUTF8List;
</code></pre>
<p>这个列表中添加一些字体名称,这些字体永远不会嵌入到PDF文件中。</p>
<blockquote>
<p>忽略所有标准 Windows 字体,请使用:<code>EmbeddedTTFIgnore.Text := MSWINDOWS_DEFAULT_FONTS;</code></p>
</blockquote>
<h3 id="mswindows_default_fonts">MSWINDOWS_DEFAULT_FONTS</h3>
<pre><code class="language-delphi">MSWINDOWS_DEFAULT_FONTS: RawUTF8 =
'Arial'#13#10'Courier New'#13#10'Georgia'#13#10+
'Impact'#13#10'Lucida Console'#13#10'Roman'#13#10'Symbol'#13#10+
'Tahoma'#13#10'Times New Roman'#13#10'Trebuchet'#13#10+
'Verdana'#13#10'WingDings';
</code></pre>
<p>自Windows 2000以来默认可用的常用字体列表。</p>
<p>要避免在PDF文档中嵌入这些字体并以省磁盘空间,只需设置 <code>EmbeddedTTFIgnore</code> 属性:<code>EmbeddedTTFIgnore.Text := MSWINDOWS_DEFAULT_FONTS;</code></p>
<blockquote>
<p>只有当<code>EmbeddedTTF</code>属性设置为<em>True</em>时才有用。</p>
</blockquote>
<h3 id="tpdfdocumentnewdoc">TPdfDocument.NewDoc</h3>
<pre><code class="language-delphi">procedure NewDoc;
</code></pre>
<p>创建一个新文档。</p>
<blockquote>
<p>如果要重置整个文档内容,可以多次调用它。</p>
</blockquote>
<h2 id="例子">例子</h2>
<h3 id="创建设置">创建设置</h3>
<pre><code class="language-delphi">procedure TForm1.Button8Click(Sender: TObject);
var
Pdf: TPdfDocumentGDI;
begin
//创建PDF文档
Pdf := TPdfDocumentGDI.Create;
try
    //压缩方式
    Pdf.CompressionMethod := cmFlateDecode;
    //设置不嵌入字体
    Pdf.EmbeddedTTFIgnore.Add('WingDings');
    Pdf.AddPage;
    Pdf.SaveToFile('C:\Users\Administrator\Desktop\ceshi.pdf');
finally
    Pdf.Free;
end;
end;
</code></pre>
<h3 id="清空文档">清空文档</h3>
<pre><code class="language-delphi">procedure TForm1.Button9Click(Sender: TObject);
var
Pdf: TPdfDocumentGDI;
begin
//创建PDF文档
Pdf := TPdfDocumentGDI.Create;
try
    Pdf.AddPage;
    with Pdf.VCLCanvas do
    begin
      Font.Name := '宋体';
      Font.Size := 20;
      TextOut(100, 100, '原文档的内容');
    end;
    //清空文档内容
    Pdf.NewDoc;
    //写入新内容
    Pdf.AddPage;
    with Pdf.VCLCanvas do
    begin
      Font.Name := '宋体';
      Font.Size := 20;
      TextOut(100, 100, '新文档的内容');
    end;
    Pdf.SaveToFile('C:\Users\Administrator\Desktop\ceshi.pdf');
finally
    Pdf.Free;
end;
end;
</code></pre><br><br>
来源:https://www.cnblogs.com/txgh/p/16206700.html
頁: [1]
查看完整版本: delphi SynPDF 文档设置