我使用以下代码使用Delphi将Open Office文档导出为pdf文件:
procedure TOOoWriter.SaveToPDF(FileName: string);
var
wProperties: variant;
begin
if not (fConnected and fDocumentOpened) then
abort;
wProperties := VarArrayCreate([0, 3], varVariant);
if fHTMLSrc then
wProperties[0] := MakePropertyValue('FilterName', 'writer_web_pdf_Export')
else
wProperties[0] := MakePropertyValue('FilterName', 'writer_pdf_Export');
wProperties[1] := MakePropertyValue('CompressionMode', '1');
wProperties[2] := MakePropertyValue('Pages', 'All');
wProperties[3] := MakePropertyValue('Overwrite', TRUE);
fDocument.StoreToURL('file:///'+ StringReplace(FileName, '\', '/', [rfIgnoreCase, rfReplaceAll]), wProperties);
end;
一切运作良好,除了:
它坚持打开生成的pdf文件(但不是OO文件)。这是有问题的,因为我将在没有用户交互的情况下编写100个文件。
如果输出pdf文件不存在,我会收到异常,但文件创建正确。第二次它在第一次创建文件时正常工作。
这些问题有解决方案吗?