zealsoft
Delphi下操作PDF文件的控件中我已经提到,iSEDQuickPDF是一个功能非常强的PDF操作控件。在使用这个控件的时候遇到的一个最大问题就是如何输出中文。经过摸索终于找到了解决的办法,与大家分享一下。
1、正文中带中文的情况
在iSEDQuickPDF的FAQ中介绍了一种方法,就是使用AddSubsettedFont函数,例如:
procedure TForm1.Button1Click(Sender: TObject);
var
 QP: TiSEDQuickPDF;
 s: 
string;
begin
 QP :
= TiSEDQuickPDF.Create;
 
try
   s :
= \'Hello 热情软件屋!\';
   QP.AddSubsettedFont(
\'宋体\'10, s);
   QP.DrawText(
100500, QP.GetSubsetString(S));
   QP.SaveToFile(
\'g:\test.pdf\');
 
finally
   QP.Free;
 end;
end;
2、书签中带中文的情况
如果直接使用NewOutline函数添加中文书签,则最后显示的一定是乱码。要先使用ToPDFUnicode将中文转换为PDF中的Unicode格式才行,如:
QP.NewOutline(Integer(currentNode.Parent.Data),
                            QP.ToPDFUnicode(
"热情软件屋"), nPageNumber, 0)

分类:

技术点:

相关文章: