我们需要在我们的内部Borland Delphi 7应用程序中添加一项功能,以将MS Office文档(.doc,.docx,.xls,.xlsx)转换为PDF。
是否有ActiveX组件或其他解决方案(商业或免费)我们可以使用或与我们的应用程序集成以实现此目的?
还需要它适用于早于2007年的Office版本,因为2007年转换可以通过附加组件获得,而在2010年它可以默认使用。
如果没有第三方组件,我们也会感兴趣。
答案 0 :(得分:4)
一种选择是使用OpenOffice,它可以打开MS Office文档并将其另存为PDF。
这可以通过网络(中央转换器服务)实现自动化,甚至通过OpenOffice的无头模式使用,该模式通过套接字连接接受控制命令。
有各种编程语言可用的实现,它们使用此服务API进行转换。
答案 1 :(得分:4)
是否有ActiveX组件或其他解决方案(商业或免费)我们可以使用或与我们的应用程序集成来实现这一目标?
最好的方法是使用Office本身进行转换 Office 2007是第一个可以将文档另存为PDF的版本 因此,如果您在2007年之前安装了版本(不是您,而是其他人),则必须安装PDF打印机(如PDF创建者或诸如此类的东西)。
然后,您可以使用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);
....