Попытка экспортировать отчет с текстом Unicode в PDF с использованием SynPDF приводит к перепутанному тексту
SynPDF исправил некоторые проблемы с юникодом, но, по-видимому, не все из них. Ниже приведен простой код для экспорта быстрого отчета в PDF с использованием SynPDF:
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.
но я не исключаю других компонентов, учитывая, что они
есть решение этой проблемы.
Спасибо.