Python PDF>使用pdf2jpg进行JPG转换

时间:2018-08-22 10:10:42

标签: python python-3.x

我正在尝试将一些PDF转换为JPG,并使用pdf2jpg做到这一点。

我运行的代码是:

inputPath = sys.argv[1].replace("\\", "/")
print(inputPath)

# Get parent folder of the file
parentFolder = "/".join(inputPath.split("/")[:-1])
print(parentFolder)

# Convert pdf to jpg in same folder
result = pdf2jpg.convert_pdf2jpg(inputPath, parentFolder, pages="1")
print(result)

运行此命令时,出现的错误是:

NotADirectoryError: [WinError 267] The directory name is invalid: 'C:/Users/Username/Desktop\\test.pdf'

奇怪的是,当我运行相同的代码并注释掉最后两行时,我得到:

C:/Users/Username/Desktop/test.pdf
C:/Users/Username/Desktop

似乎inputPath本身已正确转换为正斜杠,但在被pdf2jpg引用时又恢复为反斜杠。

ETA:使用原始文字,切换到反斜杠而不是正斜杠。现在代码如下:

inputPath = sys.argv[1]
inputPath_raw = r'%s'%inputPath
print(inputPath_raw)

parentFolder = chr(92).join(inputPath_raw.split(chr(92))[:-1])
print(parentFolder)

result = pdf2jpg.convert_pdf2jpg(inputPath_raw, parentFolder, pages="1")
print(result)

然后我给它输入:

convert.py "C:\Users\Username\Desktop\test.pdf"

我看到的错误是:

NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\Username\\Desktop\\test.pdf'

打印变量仍然可以提供正确的输出作为文件路径,只是这一部分无法识别路径。

1 个答案:

答案 0 :(得分:3)

更新:

问题是 pdf2jpg 试图创建一个目录,该目录以outputpath中的pdf文件命名。转换文件test.pdf时,它将(尝试)在指定的输出路径中创建名为\test.pdf的目录。

由于源目录和目标目录相同,因此将失败,因为在同一路径中具有相同名称test.pdf的文件和目录是文件系统的限制。

这是在inputpath + \pdf2jpg目录中创建输出jpg的测试,它将起作用:

# -*- coding: utf-8 -*-    
import os
import sys
from pdf2jpg import pdf2jpg

source = sys.argv[1]
destination = os.path.dirname(source)+"\pdf2jpg"

try:
    os.mkdir(destination)
except FileExistsError:
    # pdf2jpg directory existing
    pass

result = pdf2jpg.convert_pdf2jpg(source, destination, pages="ALL")