天天看点

在iSEDQuickPDF中如何输出带中文的PDF文件

在Delphi下操作PDF文件的控件中我已经提到,iSEDQuickPDF是一个功能非常强的PDF操作控件。在使用这个控件的时候遇到的一个最大问题就是如何输出中文。经过摸索终于找到了解决的办法,与大家分享一下。

1、正文中带中文的情况

在iSEDQuickPDF的FAQ中介绍了一种方法,就是使用AddSubsettedFont函数,例如:

在iSEDQuickPDF中如何输出带中文的PDF文件

procedure TForm1.Button1Click(Sender: TObject);

在iSEDQuickPDF中如何输出带中文的PDF文件

var

在iSEDQuickPDF中如何输出带中文的PDF文件

 QP: TiSEDQuickPDF;

在iSEDQuickPDF中如何输出带中文的PDF文件

 s: string;

在iSEDQuickPDF中如何输出带中文的PDF文件

begin

在iSEDQuickPDF中如何输出带中文的PDF文件

 QP := TiSEDQuickPDF.Create;

在iSEDQuickPDF中如何输出带中文的PDF文件

 try

在iSEDQuickPDF中如何输出带中文的PDF文件

   s := 'Hello 热情软件屋!';

在iSEDQuickPDF中如何输出带中文的PDF文件

   QP.AddSubsettedFont('宋体', 10, s);

在iSEDQuickPDF中如何输出带中文的PDF文件

   QP.DrawText(100, 500, QP.GetSubsetString(S));

在iSEDQuickPDF中如何输出带中文的PDF文件

   QP.SaveToFile('g:\test.pdf');

在iSEDQuickPDF中如何输出带中文的PDF文件

 finally

在iSEDQuickPDF中如何输出带中文的PDF文件

   QP.Free;

在iSEDQuickPDF中如何输出带中文的PDF文件

 end;

在iSEDQuickPDF中如何输出带中文的PDF文件

end;

2、书签中带中文的情况

如果直接使用NewOutline函数添加中文书签,则最后显示的一定是乱码。要先使用ToPDFUnicode将中文转换为PDF中的Unicode格式才行,如:

在iSEDQuickPDF中如何输出带中文的PDF文件

QP.NewOutline(Integer(currentNode.Parent.Data),

在iSEDQuickPDF中如何输出带中文的PDF文件

                            QP.ToPDFUnicode("热情软件屋"), nPageNumber, 0)

在iSEDQuickPDF中如何输出带中文的PDF文件