我正在创建一个程序,用于将多个 Excel 工作表导出为带有水印和表单字段等的 pdf。现在一切都很顺利,但最终的 pdf 相当大。所以我正在考虑缩小它的最佳方法,我发现最好的结果是简单地在 Adobe Acrobat 中打开 pdf,然后使用“Adobe PDF”打印机打印它。这样我将文件大小减小到原始大小的 1/6。
所以我尝试通过 VBA 代码来完成此操作,看起来使用 JS 的代码非常简单。
sPath = "some path"
sPathFinal = "some other path"
Dim AcroApp As AcroAVDoc: Set AcroApp = CreateObject("AcroExch.AVDoc")
Dim Document As AcroPDDoc
Dim JSO, pp
AcroApp.Open sPath, ""
Set Document = AcroApp.GetPDDoc()
Set JSO = Document.GetJSObject
Set pp = JSO.getPrintParams
pp.printerName = "Adobe PDF"
pp.Filename = sPathFinal
JSO.Print (pp)
问题应该在最后一行
JSO.print(pp) - 带小写“p”的“print”
但是每次我离开车道时,它都会自动更正为大写“P”。我尝试在“工具”->“选项”->“编辑器”->“代码设置”以及“选项”选项卡中的其他位置关闭所有内容,但到目前为止还没有成功。
有办法阻止这种自动更正吗?
(而且我的母语不是英语,所以很有可能它的称呼不同:)
简短的回答是不,你不能,因为 VBA 编辑器会自动更正代码中的大小写。
这是因为 VB 区分大小写(尽管看起来不像),并且编辑器会尝试通过更改变量的大小写来防止拼写错误。
如果您想保留大小写并避免自动更正,最简单的解决方案是使用其他编辑器(如
Notepad
)并从命令行编译代码。
希望这有帮助。