微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从目录中提取pdf并使用pdf2image将图像输出到不同的目录

如何解决从目录中提取pdf并使用pdf2image将图像输出到不同的目录

我正在尝试读取位于某个目录中的一些 pdf,并将其页面的图像输出到不同目录中。

(我正在寻求了解此代码的工作原理,我希望有一种更简洁的方法来为我的图像文件指定输出目录。)

我所做的工作有效,但我认为它只是在我的保存目录和我的 pdf 目录之间来回跳动。

这感觉不像是一种干净的方法。有没有更好的选择,可以保留现有代码并完成我添加的行的作用?

import os
from pdf2image import convert_from_path

pdf_dir = r"mydirectorypathwithPDFs"
save_dir = 'mydirectorypathforimages'

os.chdir(pdf_dir)

for pdf_file in os.listdir(pdf_dir):
    os.chdir(pdf_dir) #I added this,change back to the pdf directory
    if pdf_file.endswith(".pdf"):
        pages = convert_from_path(pdf_file,300)
        pdf_file = pdf_file[:-4]
        for page in pages:
            os.chdir(save_dir) #I added this,change to the save directory
            page.save("%s-page%d.jpg" % (pdf_file,pages.index(page)),"JPEG")

我稍微修改代码是由 @photek1944 创建的,可以在这里找到:https://stackoverflow.com/a/53463015/10216912

解决方法

这可能有点超出您所要求的范围,但是任何时候有人希望简化涉及 function copytest() {var sheet2 = SpreadsheetApp.getActive().getSheetByName('A'); sheet2.getRange("B4").copyTo(sheet2.getRange(sheet2.getLastRow()+1,1,1),{formatOnly:false,contentsOnly:true}); } 的代码来操作路径和文件,我总是喜欢推荐 Python 的 pathlib 模块,{ {3}}。以下是我个人将如何实施您的计划:

os

from pathlib import Path from pdf2image import convert_from_path # Use forward slashes here,even if you're on Windows. pdf_dir = Path('my/directory/path/with/PDFs') save_dir = Path('my/directory/path/for/images') for pdf_file in pdf_dir.glob('*.pdf'): pages = convert_from_path(pdf_file,300) for num,page in enumerate(pages,start=1): page.save(save_dir / f'{pdf_file.stem}-page{num}.jpg','JPEG') 自动处理提供正确的分隔符(Windows 上的 pathlib 和其他地方的 \ 大部分),它允许您使用 / 作为运算符添加到路径,以及它使使用 / 方法搜索文件夹特别方便。它还公开了 glob (name)、blah.pdf (stem) 和 blah (extension) 等属性,以便更轻松地访问部件路径和文件名。

我还使用 because it is awesome 来提高可读性,并使用 f-string 来跟踪页码。 (我已将其设置为从 .pdf 开始;我相信您的原始代码会将第一页编号为 1。)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。