Delphi 调整窗体大小后,TAcroPDF将丢失分辨率

Delphi 调整窗体大小后,TAcroPDF将丢失分辨率,delphi,Delphi,我正在用Debenu创建PDF并保存它们。然后AcroPDF.LoadFile加载PDF。如果我启动应用程序并加载一个文件,一切正常。加载后,我甚至可以使用此PDF调整大小。但是,如果我以任何方式调整了我的应用程序的大小(不管它是否恢复到我开始的大小),然后加载,PDF就会失去分辨率 AcroPDF未对齐且未锚定(如果已锚定则无关紧要)。当我用Arcobat Reader打开生成的PDF时,分辨率非常好 这个问题似乎只发生在生成的PDF中。其他的都不行 这是我的密码: procedure TFo

我正在用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

我建议不要同时使用ACROPDF库(我假设您-导入了active x控件-创建了一个_TLB单元-创建了一个可视化组件)

您遇到的问题与我遇到的问题完全相同,再加上我发现的其他几个问题:

  • 如果adobe发布了新版本的READER(他们经常这么做),您将需要更新您的组件(通过更新您的READER、导入active X控件并重新创建组件)。如果您不这样做,并且尝试打开更高版本的.PDF,您将得到一个COM异常

  • 没有转发兼容性(如上所述)

  • 有限向后兼容性

我建议直接打电话

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

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

Rgr。非常感谢。我暂时用这个。你知道在应用程序中启动pdf的方法吗。我正在写一个制作账单的应用程序。客户会想要调整账单的布局,因此如果最终产品可以在应用程序中刷新,这将非常方便。我相信这可能会对您有所帮助:这非常好,家长是否可以像面板一样是一个“容器”呢?nm,我想我在这里找到了答案