打开PDF到书签/命名目的地?

时间:2015-05-17 15:47:26

标签: python pdf cmd adobe-reader

我正在尝试使用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并尝试使用这样的子进程模块时:

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创建目标。我已经玩了2到3年的python,但是不知道比一个学期的一个介绍编程课程的人多。

1 个答案:

答案 0 :(得分:2)

FIXED:

我是个白痴。

"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()