我正在尝试使用 python 打开特定书签的 PDF。
到目前为止,我能够在命令提示符中运行以下命令并得到我想要的(last 是 PDF test.pdf 中命名目的地的名称)
"C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe" /A "nameddest=last" "C:\Users\User\Desktop\test.pdf"
但是当我使用 Python 并尝试像这样使用 subprocess 模块时:
import subprocess
subprocess.call(['"C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe" /A "nameddest=last" "C:\\Users\\User\Desktop\test.pdf"'], shell=True)
我得到“文件名、目录名或卷标语法不正确。”我之前尝试过的一些操作会导致 Adobe Reader 打开,但给我一个包含相同消息的对话框
为什么当我在 python 中运行它时会发生什么变化?我该如何解决?
我在 Windows 8 上运行 Anaconda 2.1.0,并使用 Acrobat 10 创建目标。我已经使用 python 玩了 2-3 年,但并不比上过 1 个学期的入门编程类(class)的人了解更多。
最佳答案
已修复:
我是个白痴。
"C:\\Users\\User\Desktop\test.pdf"
是无效路径,因为\test.pdf 中的\t 被解释为制表符... 它在将其添加到\test.pdf 后起作用。
以后遇到同样问题的人的代码:
import os
import subprocess
page = "3"
path_to_pdf = os.path.abspath("C:\\Users\\User\Desktop\\test.pdf")
path_to_acrobat = os.path.abspath('C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe')
process = subprocess.Popen([path_to_acrobat, '/n', '/A', 'page=' + page, path_to_pdf], shell=False, stdout=subprocess.PIPE)
process.wait()
关于python - 打开 PDF 到书签/命名目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30288797/