表格调整后,TAcroPDF失去了解决方案

时间:2014-04-15 10:52:33

标签: delphi

我正在使用Debenu创建PDF并保存它们。然后AcroPDF.LoadFile加载PDF。如果我启动我的应用程序并加载文件,一切都很好。我甚至可以在加载后使用此PDF调整大小。但是,如果我以任何方式调整了我的应用程序的大小(无论是否重新开始),然后加载,PDF都会失去分辨率。

AcroPDF没有对齐并且没有锚定(如果是的话无关紧要)。当我用Arcobat Reader打开生成的PDF时,分辨率很高。

这个问题似乎只发生在生成的PDF上。没有任何其他

这是我的代码:

procedure TForm1.Button1Click(Sender: TObject);
var
  PDF: TDebenuPDFLibraryDLL0915;
begin
  PDF := TDebenuPDFLibraryDLL0915.Create('DebenuPDFLibraryDLL0915.dll');
  try
    PDF.UnlockKey(Key);

    PDF.SelectPage(1);
    PDF.SetPageSize('a4');
    PDF.AddImageFromFile('c:\Tool\Picture.jpg', 0);
    PDF.DrawImage(0,842,595,842);
    PDF.SaveToFile('C:\Tool\Test.pdf');

    AcroPDF.LoadFile('C:\Tool\Test.pdf');
  finally
    PDF.Free;
  end;
end;

软件: Win7 64,Delphi XE5

1 个答案:

答案 0 :(得分:1)

我建议不要一起使用ACROPDF库(我假设您 - 导入了活动的x控件 - 创建了一个_TLB单元 - 创建了一个可视组件)

你遇到的问题与我得到的问题完全一样,加上我发现的其他几个问题:

  • 如果adobe启动了新版本的READER(他们做了很多),您需要更新组件(通过更新READER,导入活动X控件并重新创建组件)。如果您不这样做,并且尝试打开更高版本的.PDF,则会收到COM异常。

  • 没有向前兼容性(如上所述)

  • 有限的向后兼容性

我建议简单地调用

ShellExecute(Handle, nil, PChar("c:\MyPDF.PDF"), nil,  nil, SW_SHOWNORMAL);

让Windows调用默认的PDF编辑器(可能是Adobe Reader),让默认的应用程序完成工作。