PDDoc.保存Adobe Acrobat方法在Excel VBA中不起作用

j2datikz  于 2022-12-30  发布在  其他
关注(0)|答案(2)|浏览(764)

我们的办公室运行Arobat DC Pro和Excel 2016,多年来我们一直在Excel VBA中使用以下代码(缩小版本)保存*活动*Adobe PDF文档(即,最近获得焦点的打开PDF文档)。
由于最近升级了Arobat DC Pro到一个更新的版本,Acrobat
PDDoc.保存
方法不再工作。它不会抛出错误,只是不保存活动的PDF。
我已经让我们的IT部门在几台计算机上卸载/重新安装acrobacpro,但代码仍然不起作用。
请注意,在VBA中选择Adobe Acrobat参考库。
对如何修复有什么建议?

Sub SaveActivePDF()

Dim AcroApp As Acrobat.CAcroApp
Dim PdDoc As Acrobat.CAcroPDDoc
Dim avdoc As Acrobat.CAcroAVDoc

Dim boolWasSaved As Boolean

Set AcroApp = CreateObject("AcroExch.App")
Set avdoc = AcroApp.GetActiveDoc
Set PdDoc = avdoc.GetPDDoc

DayTime = Format(Now, "yymmddhmmss")
Username = Environ("USERNAME")

PdfNewPath = "C:\Users\" & Username & "\Desktop\TEST PDF " & DayTime & ".pdf"

boolWasSaved = PDDoc.Save(PDSaveFull, PdfNewPath)   '<-- NOT WORKING 

If boolWasSaved = True Then
        MsgBox "PDF WAS SAVED!"
    Else: MsgBox "ERROR - PDF not saved"
End If

End Sub
67up9zun

67up9zun1#

声明一下,对Acrobat库的访问被更改默认设置的软件更新所阻止。
问题解决如下:打开任何PDF〉编辑〉首选项〉安全性(增强)〉取消选中复选框“启动时启用保护模式(预览)”〉退出所有PDF。

fdbelqdn

fdbelqdn2#

VBA空闲-〉按“F2”-〉搜索“AcroPDDoc”-〉定位其方法“保存”

Function Save(nType As Integer, sFullPath As String) As Boolean

在Adobe的 acrobatsdk_iacguide.pdf 中,参数nType的描述有点混乱。不确定 PDSaveFull 的整数是多少

nType是以下一个或多个标志的逻辑OR:只写入更改,不写入整个文件。这将导致文件变大,即使对象已被删除。

  • PDSaveFull* -将整个文件写入szFullPath指定的文件名。
  • PDSaveCopy* -将文件的副本写入szFullPath指定的文件,但继续使用旧文件。仅当同时使用PDSaveFull时,才能指定此标志。
  • PDSaveCollectGarbage* -删除未引用的对象;这通常会减小文件大小,并且鼓励使用它。2只有在使用PDSaveFull时才能指定此标志。
  • PDSaveLinearized* -保存针对Web优化的文件,提供提示表。这允许PDF文件按字节提供。只有在同时使用PDSaveFull时才能指定此标志。

相关问题