【问题标题】:Open PDF to Bookmark/Named Destination?打开 PDF 到书签/命名目的地?
【发布时间】:2015-05-17 15:47:25
【问题描述】:

我正在尝试使用 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)

我收到“文件名、目录名或卷标语法不正确。”在此之前我尝试过的一些操作导致 Adob​​e Reader 打开,但给了我一个包含相同消息的对话框

为什么当我在 python 中运行它时会发生什么变化?我该如何解决?


我在 Windows 8 上运行 Anaconda 2.1.0 并使用 Acrobat 10 创建目标。我已经用 python 玩了 2-3 年,但我知道的并不比一个有 1 个学期的入门编程课程的人多。

【问题讨论】:

标签: python pdf cmd adobe-reader


【解决方案1】:

已修复:

我是个白痴。

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

【讨论】:

  • 您也可以使用r"C:\Users\User\Desktop\test.pdf"。字符串头部的标志r是python中的原始字符串。
猜你喜欢
  • 2020-01-21
  • 1970-01-01
  • 2010-11-05
  • 1970-01-01
  • 2012-03-09
  • 2022-07-06
  • 1970-01-01
  • 1970-01-01
  • 2019-09-17
相关资源
最近更新 更多