有一个ActiveX组件或另一种解决方案(商用或免费的),我们可以使用或与我们的应用程序集成,以实现这一目标?
最好的方法是使用Office本身进行转换。
Office 2007是第一个可以将文档保存为PDF的版本。
因此,如果您在2007年以前安装了一个版本(不是您,但是其他人),则必须安装PDF打印机(如PDF-creator或whatnot)。
然后,您可以使用OLE自动化指示Word(仅适用于Office 2007和以上)
procedure ConvertToPDF(Filename: string);
const
pdf = '.pdf';
var
NewFilename: string;
Extension: string;
WinWord, Document: OleVariant;
e: OleVariant;
begin
e:= EmptyParam;
Extension:= ExtractFileExt(Filename);
NewFilename:= StringReplace(Filename, Extension, pdf, [rfReplaceAll, rfIgnoreCase]);
WinWord := CreateOleObject('Word.Application');
Document := WinWord.Documents.Open(Filename);
Document.SaveAs(NewFilename, wdFormatPDF, e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e);
....
双方的.docx和.pdf格式完全由微软和Adobe文件尊敬。 .doc标准也记录在案,当然我几年前看到的文档有数百页。所以你最好使用已经写好的组件。 – 2012-02-22 17:00:56
没有第三方组件?精细。使用OLE自动化控制Microsoft Word,这是一个可以打开Word文档的版本,并保存为PDF,例如Office 2010.您必须安装Office 2010才能通过OLE自动化控制它。 – 2012-02-22 20:58:19
您已经要求提供一个ActiveX控件,它很可能是由第三方提供的,但后来指定非第三方是首选?哦,等等 - 并提到“商业或免费”,这也暗示第三方。我觉得我很困惑... – 2012-02-23 03:16:11