delphi TMS FlexCel 导出PDF设置
<h1 id="tms-flexcel-导出pdf设置">TMS FlexCel 导出PDF设置</h1><h2 id="属性和方法">属性和方法</h2>
<h3 id="tflexcelpdfexportcompress">TFlexCelPdfExport.Compress</h3>
<pre><code class="language-delphi">property Compress: Boolean
</code></pre>
<p>当为<em>true</em>时,PDF文件将被压缩。<strong>默认值</strong> <em>true</em>。</p>
<h3 id="tflexcelpdfexportpagelayout">TFlexCelPdfExport.PageLayout</h3>
<pre><code class="language-delphi">property PageLayout: TPageLayout
</code></pre>
<p>设置打开文档时的默认页面布局。</p>
<h3 id="tpagelayout">TPageLayout</h3>
<p>首次打开文档时的查看器设置。</p>
<p><strong>unit</strong></p>
<p>FlexCel.Pdf</p>
<p><em>None</em>保持用户定义的布局。</p>
<p><em>Outlines</em>打开文档时显示大纲窗格。</p>
<p><em>Thumbs</em>打开文档时显示缩略图窗格。</p>
<p><em>FullScreen</em>以全屏模式打开文档。</p>
<p><em>OptionalContent</em>显示可选的内容组面板。</p>
<p><em>AttachmentPanel</em>显示附件面板。</p>
<h3 id="tflexcelpdfexportproperties">TFlexCelPdfExport.Properties</h3>
<pre><code class="language-delphi">Properties: TPdfProperties;
</code></pre>
<p>PDF文件属性。</p>
<blockquote>
<p>注意,如果<code>UseExcelProperties</code>为 <em>true</em> 并且<code>Properties</code>值为 <em>null</em> 或空,则将使用导出工作簿中的属性。</p>
</blockquote>
<h3 id="tpdfpropertiestitle">TPdfProperties.Title</h3>
<pre><code class="language-delphi">Title: string;
</code></pre>
<p>文档的标题。</p>
<h3 id="tpdfpropertiesauthor">TPdfProperties.Author</h3>
<pre><code class="language-delphi">Author: string;
</code></pre>
<p>文档中的作者。</p>
<h3 id="tpdfpropertiessubject">TPdfProperties.Subject</h3>
<pre><code class="language-delphi">Subject: string;
</code></pre>
<p>文档的主题。</p>
<h3 id="tpdfpropertieskeywords">TPdfProperties.Keywords</h3>
<pre><code class="language-delphi">Keywords: string;
</code></pre>
<p>文档中的关键字。</p>
<h3 id="tpdfpropertiescreator">TPdfProperties.Creator</h3>
<pre><code class="language-delphi">Creator: string;
</code></pre>
<p>文档中的生成器。</p>
<h3 id="tpdfpropertieslanguage">TPdfProperties.Language</h3>
<pre><code class="language-delphi">Language: string;
</code></pre>
<p>指定文档的自然语言的语言标识符。 这应该是一个标准说明符,如“en-US”。</p>
<blockquote>
<p>注意,文本到语音引擎将使用该语言来大声朗读文本,因此建议设置此属性。</p>
<p>您可以在此处查看语言列表:http://msdn.microsoft.com/en-us/library/ee825488(v=cs.20).aspx</p>
</blockquote>
<h3 id="tflexcelpdfexportuseexcelproperties">TFlexCelPdfExport.UseExcelProperties</h3>
<pre><code class="language-delphi">property UseExcelProperties: Boolean
</code></pre>
<p>当此属性为true时,并且属性<code>Properties</code>值为 <em>null</em> 或空,将使用Excel文件中的属性。</p>
<h3 id="tflexcelpdfexportpdftype">TFlexCelPdfExport.PdfType</h3>
<pre><code class="language-delphi">property PdfType: TPdfType
</code></pre>
<p>定义要创建的PDF的类型。</p>
<blockquote>
<p>注意,如果将此属性设置为<em>Standard</em>之外的其他值,则可能会忽略其他属性。例如,在创建 PDF/A 文件时,必须嵌入所有字体,因此 <code>FontEmbed</code> 属性的值将被忽略。</p>
<p>查看<code>TagMode</code>属性来确定文件是PDF/A-1a(PDF/A-2a)还是PDF/A-1b(PDF/A-2b)。如果标记为<em>Full</em>,则生成的文件将为“a”。 如果不是,它们将是“b”,因为“b”不需要标记。</p>
</blockquote>
<h3 id="tpdftype">TPdfType</h3>
<p>要创建的PDF的类型。</p>
<p><strong>unit</strong></p>
<p>FlexCel.Pdf</p>
<ul>
<li><em>Standard</em>一个普通的PDF文件。</li>
<li><em>PDFA1</em>PDF/A-1a 或 b (http://en.wikipedia.org/?title=PDF/A) 。请注意,PDF/A-1 生成的文件比 PDF/A-2 更大,而且也不支持透明度。 但 PDF/A-1 是编写本文档时更常用的标准。</li>
<li><em>PDFA2</em>PDF/A-2a 或 b。 FlexCel 将在 PDF/A-2 模式下创建比在 PDF/A-1 模式下更小的文件,因此如果可能,您应该尝试使用 PDF/A-2 而不是 A1。 A2 还支持透明度。 在 FlexCel 的情况下,FlexCel 也可以签署 PDF/A-2 文件,但不能签署 PDF/A-1。</li>
<li><em>PDFA3</em>PDF/A-3。 请注意,与 PDF/A2 的唯一区别是可以在 PDF 文件中嵌入其他文件。</li>
</ul>
<h3 id="tflexcelpdfexporttagmode">TFlexCelPdfExport.TagMode</h3>
<pre><code class="language-delphi">property TagMode: TTagMode
</code></pre>
<p>如果<code>TagMode</code>为 <em>Full</em>,则生成的文件将被标记。带标签的PDF提供了更好的可访问性支持,但是文件可能会更大,并且需要更长的时间来创建。如果您喜欢较小的文件(即使无法访问),请关闭此选项。<strong>默认值</strong> <em>Full</em>。</p>
<blockquote>
<p>注意,当使用 <code>PdfType</code> 创建 PDF/A 文件时,此属性定义文件是 PDF/A-1a(PDF/A-2a)还是 PDF/A-1b(PDF/A-2b)。 这是因为 PDF/A-1a 和 PDF/A-2a 需要标记文件,因此如果此选项为<em>Full</em>,生成的文件将为“a”。 如果此选项为 <em>None</em>,则生成的文件将为“b”,这是一个不太严格的标准,不需要标记。</p>
</blockquote>
<h3 id="ttagmode">TTagMode</h3>
<p>指定如何标记文档。</p>
<p><strong>unit</strong></p>
<p>FlexCel.Pdf</p>
<ul>
<li><em>Full</em>文档将被标记为所有标记。</li>
<li><em>None</em>文档将不会被标记。</li>
</ul>
<h3 id="tflexcelpdfexportpdfversion">TFlexCelPdfExport.PdfVersion</h3>
<pre><code class="language-delphi">property PdfVersion: TPdfVersion
</code></pre>
<p>定义要创建的pdf版本。为了获得最大的兼容性,您可以选择 PDF 1.4(任何版本的 Acrobat 都可以打开,即使低于 1.4 的版本不会具有所有功能)。 选择 PDF 1.6 可以获得更多压缩和更小的文件,但您需要 Acrobat 7 或更高版本才能查看文件。 旧版本根本无法打开它。</p>
<blockquote>
<p>注意,如果您正在创建PDFA-1(因为它需要PDF1-4),这个值可能会被忽略。对于签名,FlexCel需要PDF1-7。</p>
<p>要减小文件大小,您可能希望将 <code>PdfVersion</code> 设置为大于 <em>v14</em> 的值,因为这将允许 FlexCel 使用 PDF 1.4 中没有的更好的压缩。</p>
</blockquote>
<h3 id="tpdfversion">TPdfVersion</h3>
<p>指定 FlexCel 将生成的 PDF 版本。</p>
<p><strong>unit</strong></p>
<p>FlexCel.Pdf</p>
<ul>
<li><em>v14</em>文件将采用 Pdf 1.4 格式 (Acrobat 5)。旧版本的Acrobat仍然可以打开文件,但可能会丢失透明等功能。</li>
<li><em>v16</em>文件将采用 Pdf 1.6 格式 (Acrobat 7)。 这允许更小的文件,但旧的 Acrobat 版本将无法打开文件。 您需要 Acrobat 7 或更高版本才能看到它们。</li>
<li><em>v17</em>文件将采用 Pdf 1.7 格式 (Acrobat 8)。 您需要 PDF 1.7 才能使用 SHA512 对文件进行签名。 由于不推荐使用 SHA1 进行签名,因此无论您手动选择哪个版本,如果文档已签名,FlexCel 都会自动选择 v17。</li>
</ul>
<h2 id="例子">例子</h2>
<h3 id="导出pdf设置">导出PDF设置</h3>
<pre><code class="language-delphi">uses VCL.FlexCel.Core, FlexCel.XlsAdapter, FlexCel.Render, FlexCel.Pdf;
procedure TForm1.Button18Click(Sender: TObject);
var
Xls: TXlsFile;
Pdf: TFlexCelPdfExport;
begin
//读取Excel文件
Xls := TXlsFile.Create('C:\Users\Administrator\Desktop\ceshi.xlsx');
//关联导出的文档
Pdf := TFlexCelPdfExport.Create(Xls, True);
try
//设置为不压缩
Pdf.Compress := False;
//设置文件属性
Pdf.Properties.Title := '文档的标题';
Pdf.Properties.Author := '文档的作者';
Pdf.Properties.Subject := '文档的主题';
Pdf.Properties.Keywords := '文档的关键字';
Pdf.Properties.Creator := '文档的生成器';
//设置页面布局
pdf.PageLayout := TPageLayout.Outlines;
//设置PDF类型为PDF/A-1b
Pdf.PdfType := TPdfType.PDFA1;
Pdf.TagMode := TTagMode.None;
//设置PDF版本
Pdf.PdfVersion := TPdfVersion.v16;
//导出当前活动的工作表到文件
Pdf.Export('C:\Users\Administrator\Desktop\ceshi.pdf');
finally
Pdf.Free;
Xls.Free;
end;
end;
</code></pre><br><br>
来源:https://www.cnblogs.com/txgh/p/16665690.html
頁:
[1]