保存PDF文档时,IPersistFile Save()返回0x80004001 E_NOTIMPL错误

时间:2017-05-16 03:04:19

标签: delphi pdf adobe ole ipersistfile

我使用的是Delphi 2007.我没有实现'没有实现'将文档加载到Ole容器后尝试调用IPersistFile.Save()时出现异常。 Acrobat Reader 10及更高版本存在问题。相同的代码适用于Acrobat Reader 9.

我试图在Adobe论坛上找到一些解决方案,但没有成功。也许以前有人有同样的问题。

我使用的代码如下:

procedure LoadAndSave();
var PF: IPersistFile;
    saveResult : integer;
    OleContainerDocument: TOleContainer;
    CreateInfo: TCreateInfo;
begin
  CreateInfo := ...
  OleContainerDocument.CreateObjectFromInfo(CreateInfo);

  OleContainerDocument.OleObjectInterface.QueryInterface(IPersistFile, PF);

  if PF <> nil then begin
    saveResult := PF.Save(StringToOleStr(FullFilePath), false);
    //In this place saveResult contains E_NOTIMPL error
  end
end;

0 个答案:

没有答案