我们的办公室运行Arobat DC Pro和Excel 2016,多年来我们一直在Excel VBA中使用以下代码(缩小版本)保存*活动*Adobe PDF文档(即,最近获得焦点的打开PDF文档)。
由于最近升级了Arobat DC Pro到一个更新的版本,AcrobatPDDoc.保存方法不再工作。它不会抛出错误,只是不保存活动的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
2条答案
按热度按时间67up9zun1#
声明一下,对Acrobat库的访问被更改默认设置的软件更新所阻止。
问题解决如下:打开任何PDF〉编辑〉首选项〉安全性(增强)〉取消选中复选框“启动时启用保护模式(预览)”〉退出所有PDF。
fdbelqdn2#
VBA空闲-〉按“F2”-〉搜索“AcroPDDoc”-〉定位其方法“保存”
在Adobe的 acrobatsdk_iacguide.pdf 中,参数nType的描述有点混乱。不确定 PDSaveFull 的整数是多少
nType是以下一个或多个标志的逻辑OR:只写入更改,不写入整个文件。这将导致文件变大,即使对象已被删除。