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,结果如下:
有谁知道对此可以做些什么?
我使用 SynPDF 的原因是因为它是免费的,
并且因为它呈现元文件中的文本
而不仅仅是拍照,
这意味着我可以通过我的 pdf 文件获得高质量的文本。
但我不会排除其他组件,因为它们
有解决这个问题的办法。
谢谢你。