1

SynPDF 已经修复了一些 unicode 问题,但显然不是全部。以下是使用 SynPDF 将快速报告导出为 PDF 的直接代码:

procedure TForm1.CreatePdf(QuickRep: TCustomQuickRep; const aFileName: TFileName);
var
Pdf: TPdfDocument;
aMeta: TMetaFile;
i: integer;
begin
  Pdf := TPdfDocument.Create;
  Pdf.UseUniscribe := True;
  try
      Pdf.DefaultPaperSize := psA4;
      QuickRep.Prepare; 
      for i := 1 to QuickRep.QRPrinter.PageCount do begin
        Pdf.AddPage;
        aMeta := QuickRep.QRPrinter.GetPage(i);
        try
          // draw the page content
          Pdf.Canvas.RenderMetaFile(aMeta,1,0,0);
        finally
          aMeta.Free;
        end;
      end;
      Pdf.SaveToFile(aFileName);
  finally
    Pdf.free;
  end;
end;

这是带有标签的报表设计器的屏幕截图,其中包含翻译的希伯来语字符串:

电话:03-5555555 电话

这在运行时按原样显示,并且也打印相同。然而,使用 SynPDF,结果如下: 电话PDF

有谁知道对此可以做些什么?

我使用 SynPDF 的原因是因为它是免费的,

并且因为它呈现元文件中的文本

而不仅仅是拍照,

这意味着我可以通过我的 pdf 文件获得高质量的文本。

但我不会排除其他组件,因为它们

有解决这个问题的办法。

谢谢你。

4

0 回答 0