delphi SynPDF 文档设置

SynPDF 文档设置

属性和方法

TPdfDocument.CompressionMethod

property CompressionMethod: TPdfCompressionMethod;

用于页面内容存储的压缩方法。

在创建类实例时默认值为 cmFlateDecode

TPdfCompressionMethod

指定页面内容压缩。

unit

SynPdf

TPdfCompressionMethod = (
  cmNone, cmFlateDecode);
  • cmNone 不压缩。
  • cmFlateDecode 使用平面压缩进行压缩。

TPdfDocument.EmbeddedTTF

property EmbeddedTTF: boolean;

设置为True,使用的 Truetype 字体将被嵌入到PDF内容中。默认值 False

默认值为False,以节省磁盘空间和产生微小的PDF。

TPdfDocument.EmbeddedWholeTTF

property EmbeddedWholeTTF: boolean;

设置为True,嵌入的 Truetype 字体将完全嵌入PDF文件中;设置为 False,表示将 TTF 字体子集存储到PDF文件中,即只存储使用的字形。默认值 False

此选项仅在 Windows XP 或更高版本上运行时可用。

设置EmbeddedTTFTrue,则将TTF字体子集存储到PDF文件中,即只存储使用的字体字形。

设置EmbeddedWholeTTFTrue,则整个字体文件按原样嵌入PDF文件中。

TPdfDocument.EmbeddedTTFIgnore

property EmbeddedTTFIgnore: TRawUTF8List;

这个列表中添加一些字体名称,这些字体永远不会嵌入到PDF文件中。

忽略所有标准 Windows 字体,请使用:EmbeddedTTFIgnore.Text := MSWINDOWS_DEFAULT_FONTS;

MSWINDOWS_DEFAULT_FONTS

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';

自Windows 2000以来默认可用的常用字体列表。

要避免在PDF文档中嵌入这些字体并以省磁盘空间,只需设置 EmbeddedTTFIgnore 属性:EmbeddedTTFIgnore.Text := MSWINDOWS_DEFAULT_FONTS;

只有当EmbeddedTTF属性设置为True时才有用。

TPdfDocument.NewDoc

procedure NewDoc;

创建一个新文档。

如果要重置整个文档内容,可以多次调用它。

例子

创建设置

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;

清空文档

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;
posted @ 2022-04-29 14:56  txgh  阅读(616)  评论(2编辑  收藏  举报