精华内容
下载资源
问答
  • [Python] 纯文本查看 复制代码# -*- coding: utf-8 -*-"""1、安装库 pip install pymupdf2、直接运行"""import osimport fitzpdf_dir=[]def get_file():docunames = os.listdir()for docuname in docunames:if os....

    [Python] 纯文本查看 复制代码# -*- coding: utf-8 -*-

    """

    1、安装库 pip install pymupdf

    2、直接运行

    """

    import os

    import fitz

    pdf_dir=[]

    def get_file():

    docunames = os.listdir()

    for docuname in docunames:

    if os.path.splitext(docuname)[1] == '.pdf':#目录下包含.pdf的文件

    pdf_dir.append(docuname)

    def conver_img():

    for pdf in pdf_dir:

    doc = fitz.open(pdf)

    pdf_name = os.path.splitext(pdf)[0]

    for pg in range(doc.pageCount):

    page = doc[pg]

    rotate = int(0)

    # 每个尺寸的缩放系数为2,这将为我们生成分辨率提高四倍的图像。

    zoom_x = 2.0

    zoom_y = 2.0

    trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)

    pm = page.getPixmap(matrix=trans, alpha=False)

    pm.writePNG('%s.png' % pdf_name)

    if __name__ == '__main__':

    get_file()

    conver_img()

    展开全文
  • print("""author@Jacob Lu❁date: 2020/3/5""")from pdfminer.pdfparser import PDFParser, PDFDocumentfrom pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreterfrom pdfminer.layout import ...

    print("""

    author@Jacob Lu❁

    date: 2020/3/5

    """)

    from pdfminer.pdfparser import PDFParser, PDFDocument

    from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter

    from pdfminer.layout import LAParams

    from pdfminer.converter import PDFPageAggregator

    from docx import Document

    import warnings

    import os

    import time

    import glob

    import fitz

    import re

    J=True

    while J:

    print('1.PDF_转_Word\n2.PDF图片提取\n3.退出系统\n')

    print("""温馨提示:选择功能之前请务必将你所要处理的文件与该程序放在同一文件夹中!\n""")

    choice = int(input('请输入数字选择对应的功能:'))

    if choice==1:

    print('小可爱,你好!欢迎使用PDF_转_Word程序!')

    time.sleep(1.5)

    print('———————————————————————————————————Welcome to the program!——————————————————————————————————————————————' )

    time.sleep(1.5)

    pdf_list = glob.glob('*.pdf') #查看同文件夹下的csv文件数

    print(u'共发现%s个pdf文件'% len(pdf_list))

    print(u'正在处理............')

    print(pdf_list)

    for l in iter(pdf_list):

    file_name = os.open(l, os.O_RDWR)

    document = Document()

    warnings.filterwarnings("ignore")

    def pdf2word():

    fn = open(file_name, 'rb')

    parser = PDFParser(fn)

    doc = PDFDocument()

    parser.set_document(doc)

    doc.set_parser(parser)

    resource = PDFResourceManager()

    laparams = LAParams()

    device = PDFPageAggregator(resource, laparams=laparams)

    interpreter = PDFPageInterpreter(resource, device)

    for i in doc.get_pages():

    interpreter.process_page(i)

    layout = device.get_result()

    for out in layout:

    if hasattr(out, "get_text"):

    content = out.get_text().replace(u'\xa0', u' ')

    document.add_paragraph(

    content, style='ListBullet'

    )

    document.save(l+ '.docx')

    pdf2word()

    print('处理完成')

    break

    elif choice==2:

    print('小可爱,你好!欢迎使用PDF图片提取系统!')

    time.sleep(1.5)

    print('———————————————————————————————————Welcome to the program!——————————————————————————————————————————————' )

    time.sleep(1.5)

    def pdf2pic(path, pic_path):

    t0 = time.clock()                          # 生成图片初始时间

    checkXO = r"/Type(?= */XObject)"           # 使用正则表达式来查找图片

    checkIM = r"/Subtype(?= */Image)"

    doc = fitz.open(path)                      # 打开pdf文件

    imgcount = 0                               # 图片计数

    lenXREF = doc._getXrefLength()             # 获取对象数量长度

    # 打印PDF的信息

    print("文件名:{}, 页数: {}, 对象: {}".format(path, len(doc), lenXREF - 1))

    # 遍历每一个对象

    for i in range(1, lenXREF):

    text = doc._getXrefString(i)            # 定义对象字符串

    isXObject = re.search(checkXO, text)    # 使用正则表达式查看是否是对象

    isImage = re.search(checkIM, text)      # 使用正则表达式查看是否是图片

    if not isXObject or not isImage:        # 如果不是对象也不是图片,则continue

    continue

    imgcount += 1

    pix = fitz.Pixmap(doc, i)               # 生成图像对象

    new_name = "图片{}.png".format(imgcount) # 生成图片的名称

    if pix.n < 5:                           # 如果pix.n<5,可以直接存为PNG

    pix.writePNG(os.path.join(pic_path, new_name))

    else:                                   # 否则先转换CMYK

    pix0 = fitz.Pixmap(fitz.csRGB, pix)

    pix0.writePNG(os.path.join(pic_path, new_name))

    pix0 = None

    pix = None                              # 释放资源

    t1 = time.clock()                       # 图片完成时间

    print("运行时间:{}s".format(t1 - t0))

    print("提取了{}张图片".format(imgcount))

    if __name__=='__main__':

    path =input('请输入需提取PDF文件路径:')

    pic_path =input('请输入提取图片保存路径:')

    # 创建保存图片的文件夹

    if os.path.exists(pic_path):

    print("文件夹已存在,不必重新创建!")

    pass

    else:

    os.mkdir(pic_path)

    pdf2pic(path, pic_path)

    break

    elif choice==3:

    print('拜拜~欢迎下次光临!')

    break

    else:

    print('伙计,请按照流程输入!我可不是傻子!')

    print('——————————————————————❁—————————————————————————❁———————————————————————————❁——————————————————————————' )

    time.sleep(1.5)

    continue

    展开全文
  • 最近因为想要看漫画,无奈下载的漫画...实现了以下的几项功能:将当前文件夹下的图片保存到一个pdf中,支持选择pdf大小等如果有需要可以遍历它下面的所有文件夹简单的来说完全满足我将漫画pdf格式的需求了。碰到...

    最近因为想要看漫画,无奈下载的漫画是jpg的格式,网上的转换器还没一个好用的,于是乎就打算用python自己DIY一下:

    这里主要用了reportlab。开始打算随便写几行,结果为若干坑纠结了挺久,于是乎就想想干脆把代码写好点吧。

    实现了以下的几项功能:

    将当前文件夹下的图片保存到一个pdf中,支持选择pdf大小等

    如果有需要可以遍历它下面的所有文件夹

    简单的来说完全满足我将漫画转成pdf格式的需求了。

    碰到了一些问题,这里记录下:

    一、中文路径:

    这个实在是略蛋疼,总之就是尽量都decode一遍。然后注意win下的路径是\,要将其转化成/。然后路径遍历的时候也要注意路径怎么写的。

    二、reportlab使用

    这个说实话很简单,因为没考虑加点文字什么的其实就一句代码了

    复制代码 代码如下:

    c.drawImage(filelist[i] , 0,0,maxw,maxh)

    注意文件名也要各种decode啊。

    总之借助强大的python有效代码就30行左右吧,代码地址

    三、pyInstall的打包问题

    开始是打算用py2exe结果打算接个简单的gui(真的是很简单)就开始跟我各种错,改的差不多想整成一个exe的时候有给我来个64bit not support。然后就转投pyInstall了,不过事情远不是那么顺利,如果用的是2.1版的话你会发现又有个巨大的bug--打包出来的exe居然不能放在中文路径下,于是乎各种找解决方案,然后发现了两种解决途径,一种是有个修改的版本(https://github.com/dkw72n/pyinstaller.git),另一种是选择2.0版。这个解决之后感觉这个比py2exe好多了,强烈推荐!

    简单说下使用过程:

    首先是安装:

    1、下载安装pywin32;

    2、下载pyInstall2.0版本(我觉得这样最好)

    3、下载upx然后将文件夹中的upx.exe移动到pyInstall文件夹中

    这样就完成了,连安装都不用(当然你安装也行。。。)

    使用的话就是

    复制代码 代码如下:

    python pyinstaller.py -F c:\scripts\main.py

    如果不想要黑框的话再加个-w的参数就好。其他参数:

    -F, --onefile Py代码只有一个文件

    -D, --onedir Py代码放在一个目录中(默认是这个)

    -K, --tk 包含TCL/TK

    -d, --debug 生成debug模式的exe文件

    -w, --windowed, --noconsole 窗体exe文件(Windows Only)

    -c, --nowindowed, --console 控制台exe文件(Windows Only)

    -X, --upx 使用upx压缩exe文件

    -o DIR, --out=DIR 设置spec文件输出的目录,默认在PyInstaller同目录

    --icon= 加入图标(Windows Only)

    -v FILE, --version=FILE 加入版本信息文件

    最后pyqt了个丑陋的缩水的界面(好吧。。我承认我真不太会写)

    29932245220ab648668d40b966e8783b.png

    5723eebc06fa8ad84a266a27c6a7c115.png

    打包大小9M,算是可以接受了

    运行效果(还不错啦):

    4192cac5e4a0437ce84be8b0f0d4404e.png

    以上就是本文的全部内容了,希望小伙伴们喜欢。

    时间: 2015-01-29

    展开全文
  • 在日常生活中我们常常会用到PDF格式的文档,这种格式虽然阅读方便,但我们通常无法修改PDF里面的内容,如果想要修改的需要把PDF转成Word形式。除此之外,PDF字间距较大,如果完整打印下来会花费不少钱,也需要转成...

    在日常生活中我们常常会用到PDF格式的文档,这种格式虽然阅读方便,但我们通常无法修改PDF里面的内容,如果想要修改的需要把PDF转成Word形式。除此之外,PDF字间距较大,如果完整打印下来会花费不少钱,也需要转成Word的形式调整字间距及字体的大小来减少打印成本。

    想要满足这样的需求我们通常会去使用一些软件,比如我们最常用的WPS办公程序。但是像WPS这样的办公程序PDF转Word也是需要收费的,价格也不低,如果要转换几十个甚至上百个PDF文档那要多久啊!(手估计都累残了!)。总而言之,当然没有我写的Jacob_PWD好了!(哈哈小编说了这么多心机已经完全暴露出来了~~)接下来我就给大家介绍一下我的这款程序。(下面有彩蛋哦!)

    Jacob_PWD功能一:PDF“批量”转Word

    小编调用了glob模块加上.pdf后缀名实现了文件的自动搜寻并记录文件个数,通过for循环逐个处理待转换的PDF文件实现了批量转换的功能,这样上百个PDF文件通过一个回车键轻松解决,剩下的就是坐等电脑完工!(机智如我!!哈哈~)。话不多说,上图!上图!上图!

    - 程序运行图

    - 转换效果展示

    Jacob_PWD功能二:PDF图片提取

    从上图我们看到转换的效果还是不错的,转换一些纯文本的PDF绝对是够用了,但细心的小编发现一个问题——功能1无法完成图片的转换。因此,小编又通过搜寻,参考了一些前辈的代码,解决了这样的一个问题。通过测试,小编不禁倒吸一口凉气,感叹电脑运算速度之快,提取6张图片不到0.05S!上图!上图!上图!

    - 程序运行图

    - 提取效果展示

    源代码

    print("""

    author@Jacob Lu❁

    date: 2020/3/5

    """)

    from pdfminer.pdfparser import PDFParser, PDFDocument

    from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter

    from pdfminer.layout import LAParams

    from pdfminer.converter import PDFPageAggregator

    from docx import Document

    import warnings

    import os

    import time

    import glob

    import fitz

    import re

    J=True

    while J:

    print('1.PDF_转_Wordn2.PDF图片提取n3.退出系统n')

    print("""温馨提示:选择功能之前请务必将你所要处理的文件与该程序放在同一文件夹中!n""")

    choice = int(input('请输入数字选择对应的功能:'))

    if choice==1:

    print('小可爱,你好!欢迎使用PDF_转_Word程序!')

    time.sleep(1.5)

    print('———————————————————————————————————Welcome to the program!——————————————————————————————————————————————' )

    time.sleep(1.5)

    pdf_list = glob.glob('*.pdf') #查看同文件夹下的csv文件数

    print(u'共发现%s个pdf文件'% len(pdf_list))

    print(u'正在处理............')

    print(pdf_list)

    for l in iter(pdf_list):

    file_name = os.open(l, os.O_RDWR)

    document = Document()

    warnings.filterwarnings("ignore")

    def pdf2word():

    fn = open(file_name, 'rb')

    parser = PDFParser(fn)

    doc = PDFDocument()

    parser.set_document(doc)

    doc.set_parser(parser)

    resource = PDFResourceManager()

    laparams = LAParams()

    device = PDFPageAggregator(resource, laparams=laparams)

    interpreter = PDFPageInterpreter(resource, device)

    for i in doc.get_pages():

    interpreter.process_page(i)

    layout = device.get_result()

    for out in layout:

    if hasattr(out, "get_text"):

    content = out.get_text().replace(u'xa0', u' ')

    document.add_paragraph(

    content, style='ListBullet'

    )

    document.save(l+ '.docx')

    pdf2word()

    print('处理完成')

    break

    elif choice==2:

    print('小可爱,你好!欢迎使用PDF图片提取系统!')

    time.sleep(1.5)

    print('———————————————————————————————————Welcome to the program!——————————————————————————————————————————————' )

    time.sleep(1.5)

    def pdf2pic(path, pic_path):

    t0 = time.clock() # 生成图片初始时间

    checkXO = r"/Type(?= */XObject)" # 使用正则表达式来查找图片

    checkIM = r"/Subtype(?= */Image)"

    doc = fitz.open(path) # 打开pdf文件

    imgcount = 0 # 图片计数

    lenXREF = doc._getXrefLength() # 获取对象数量长度

    # 打印PDF的信息

    print("文件名:{}, 页数: {}, 对象: {}".format(path, len(doc), lenXREF - 1))

    # 遍历每一个对象

    for i in range(1, lenXREF):

    text = doc._getXrefString(i) # 定义对象字符串

    isXObject = re.search(checkXO, text) # 使用正则表达式查看是否是对象

    isImage = re.search(checkIM, text) # 使用正则表达式查看是否是图片

    if not isXObject or not isImage: # 如果不是对象也不是图片,则continue

    continue

    imgcount += 1

    pix = fitz.Pixmap(doc, i) # 生成图像对象

    new_name = "图片{}.png".format(imgcount) # 生成图片的名称

    if pix.n < 5: # 如果pix.n<5,可以直接存为PNG

    pix.writePNG(os.path.join(pic_path, new_name))

    else: # 否则先转换CMYK

    pix0 = fitz.Pixmap(fitz.csRGB, pix)

    pix0.writePNG(os.path.join(pic_path, new_name))

    pix0 = None

    pix = None # 释放资源

    t1 = time.clock() # 图片完成时间

    print("运行时间:{}s".format(t1 - t0))

    print("提取了{}张图片".format(imgcount))

    if __name__=='__main__':

    path =input('请输入需提取PDF文件路径:')

    pic_path =input('请输入提取图片保存路径:')

    # 创建保存图片的文件夹

    if os.path.exists(pic_path):

    print("文件夹已存在,不必重新创建!")

    pass

    else:

    os.mkdir(pic_path)

    pdf2pic(path, pic_path)

    break

    elif choice==3:

    print('拜拜~欢迎下次光临!')

    break

    else:

    print('小伙子小姐姐不要开车哦!我可不是傻子,请按照正确的流程输入!')

    print('——————————————————————❁—————————————————————————❁———————————————————————————❁——————————————————————————' )

    time.sleep(1.5)

    continue

    展开全文
  • 查找当前py文件夹内的所有的pdf文件,执行pdf转png格式,新生成的png文件保留源文件的文件名.如果PDF有多页,图片名后加序号。代码:# -*- coding: utf-8 -*-"""1、安装库 pip install pymupdf2、直接运行"""import ...
  • 本文记录了图片下载后转换成PDF的过程,期间用到了EXCEL和PYTHON,所有来源都是从网络上学习后,稍加整理并测试通过。[阶段一:有规则的图片下载地址]之所以用Excel下载图片,主要是电脑上没有下载工具,于是找到...
  • 之前在网上找了很多利用python程序实现图片格式转pdf文件的方法,发现不是操作过程麻烦,就是方法老旧已经失效,要不就是利用库PythonMagick可以实现这个功能,安装和实现过程巨麻烦。因此在外网找到简单的操作方法...
  • 本文为大家分享了python批量转换Word文件为PDF文件的具体方法,供大家参考,具体内容如下1、目的通过万能的Python把一个目录下的所有Word文件转换为PDF文件。2、遍历目录作者总结了三种遍历目录的方法,分别如下。...
  • 目前手上有一些pdf格式的文档,想将其每一页批量转换为jpg或png等图片格式的文件,但是一路上转换过来碰到不少问题,现在在此记录。一、使用的工具及环境本人使用的是windows10 64位的操作系统,pythonpython3.6 ...
  • PDF转图片Python简单处理 from win32com import client import os path = r"C:\Users\user_Guest\Desktop\ky2020" #pdf文件所在目录 word = client.Dispatch('Word.Application') for pdf in os.listdir(path):...
  • windows下python批量转换ppt为图片PDF

    千次阅读 2018-08-21 10:06:48
    python3.6批量将ppt转换为pdf: import sys, os # 调用com组件包 import comtypes.client # 第一步:得到ptr def init_powerpoint(): powerpoint = comtypes.client.CreateObject(&amp;amp;amp;amp;amp;amp;...
  • 这里是我创建的一个纯python实现,它不依赖ImageMagick。它只依赖于PIL和reportlab。它可以在谷歌应用程序引擎这样的受限环境下运行。def TIFF2PDF(tiff_str, max_pages = 200):'''Convert a TIFF Image into a PDF....
  • 工作中遇到一个问题,同事整理资料比较麻烦,希望把一个文件夹下的jpg 图片批量转到一个pdf上,避免自己一张一张向pdf插入word,这里用python实现了一下。同时支持多个文件夹,每个文件夹下的照片生成一个pdf,不多...
  • 在日常生活中我们常常会用到PDF格式的文档,这种格式虽然阅读方便,但我们通常无法修改PDF里面的内容,如果想要修改的需要把PDF转成Word形式。除此之外,PDF字间距较大,如果完整打印下来会花费不少钱,也需要转成...
  • 使用Python批量转换SVG文件为PNG或PDF文件使用Python批量转换SVG文件为PNG或PDF文件使用模块1 模块单独使用2 模块用于代码实例1 命令行方式2 python脚本使用Python批量转换SVG文件为PNG或PDF文件。1. 使用模块...
  • 使用Python(代码)的优势就在于可以批量操作,试想,如果你有成百上千的PDF文件,你很有可能要一个一个的打开,然后用鼠标一步一步点另存为图片。而用Python,只用几行代码,就可以批量完成任务。此外,刚刚遇到了另...
  • 由于本地电脑的offic不能将word转换成pdf格式,于是就用python转换了一下,代码如下所示:from win32com.client import Dispatchword = Dispatch('Word.Application')doc = word.Documents.Open("J:\\新建文件夹 (3)...
  • 通过pdf2image来实现对PDF文件的处理工作,我们本次主要做的是将PDF文件批量转图片。之前写过批量提取封面的文章,但是在后期的深入编写过程中遇到一些问题,近期再次深入编写程序,一起来看看代码吧!python一、...
  • 保存网页手动生成一下,需要图片转PDF的小工具。 结果搜半天,搜到一个一次只支持5张图片,有这功夫我放word里就了。 我文件夹下有600多张图片,生产PDF。全选放word里,竟然是倒序,不知道怎么排序,也许可以...
  • 近期要处理一批PDF文件,大约在20G,具体数量不详,需求是把每个文件的页数和第一页转换成图片,在网上查阅各种类库,最终选择的是PyMuPDF模块。最后核心代码量较少,功能实现效果也比较好。一、安装扩展类...
  • python PIL图片转PDF

    2020-12-01 20:46:16
    python PIL图片转PDF 之前有个任务需要从网上爬取图片批量转换成PDF,最开始的方案是将图片保存在本地,再使用fpdf中的FPDF将本地图片合并成pdf,最后再删除图片。但是这样做一个缺点是保存图片到本地IO占用高,...
  • 依据pdf2image,批量pdf文件转换成png图片! 文章目录1. 安装pdf2image2. 导入环境变量3. Python代码4. 参考文章 1. 安装pdf2image 首先安装pdf2image包: pip install pdf2image 2. 导入环境变量 pdf2...
  • elif exportType == "pdf": cairosvg.svg2pdf(bytestring=svg, write_to=exportPath) exportFileHandle.close() print "Success Export ", exportType, " -> " , exportPath print "已导出 ", num, "个文件" export...
  • 日常工作中经常会需要把 ppt 页面转化成图片,通常我们都...所以我们今天来用 python 实现一个批量将 ppt 转化成图片pdf 的工具,而且还可以将所有的图片拼接成一张长图。老规矩,先来简单说下程序实现思路,这里...

空空如也

空空如也

1 2 3 4
收藏数 69
精华内容 27
关键字:

python批量pdf转图片

python 订阅