导语:

PDF文件是我们在日常工作和学习中常用的文档格局之一,但你知道吗?你能够将PDF文件转化为图画,让文档变得更加生动有趣。或者是避免别人对你文档的复制粘贴。

本篇博客将为你详细介绍如何将PDF转化为图画,敞开全新的文档阅览体会。

什么是PDF转图画?

PDF转图画是一种将PDF文件的每一页内容转化为图画格局(如PNG、JPEG等)的处理方法。通过这种方法,你能够将静态的文档内容转化为生动的图画,避免别人对文字文档的复制粘贴,更易于与别人共享和出现。

如何完成pdf转图画

运用pdf2image库

运用Python的pdf2image库,我们能够轻松完成PDF到图画的转化。

但需求留意的是:pdf2image 根据poppler-utils东西,它运用pdftoppm东西将PDF页面转化为图画。因此,在运用pdf2image之前,你需求确保现已装置了poppler-utils

from pdf2image import convert_from_path
def pdf_to_images(pdf_path, output_folder):
    pages = convert_from_path(pdf_path)
    for i, page in enumerate(pages):
        page.save(f'{output_folder}/page_{i + 1}.png', 'PNG')
pdf_path = 'your_pdf_file.pdf'
output_folder = 'output_images'
pdf_to_images(pdf_path, output_folder)

运用PyMuPDF库进行PDF转图画

另一个强壮的东西是PyMuPDF库,它允许我们更加灵活地操作PDF并转化为图画。

详细版如下:
import datetime
import os
import fitz  # fitz便是pip install PyMuPDF
def pyMuPDF_fitz(pdfPath, imagePath):
    startTime_pdf2img = datetime.datetime.now()  # 开端时刻
    print("imagePath=" + imagePath)
    pdfDoc = fitz.open(pdfPath)
    for pg in range(pdfDoc.pageCount):
        page = pdfDoc[pg]
        rotate = int(0)
        # 每个尺度的缩放系数为1.3,这将为我们生成分辨率提高2.6的图画。
        # 此处若是不做设置,默认图片大小为:792X612, dpi=96
        zoom_x = 2  # (1.33333333-->1056x816)   (2-->1584x1224)
        zoom_y = 2
        mat = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)
        pix = page.getPixmap(matrix=mat, alpha=False)
        if not os.path.exists(imagePath):  # 判别寄存图片的文件夹是否存在
            os.makedirs(imagePath)  # 若图片文件夹不存在就创建
        pix.writePNG(imagePath + '/' + 'images_%s.png' % pg)  # 将图片写入指定的文件夹内
    endTime_pdf2img = datetime.datetime.now()  # 结束时刻
    print('pdf2img时刻=', (endTime_pdf2img - startTime_pdf2img).seconds)
if __name__ == "__main__":
    # 1、PDF地址
    pdfPath = r'../demo-scan.pdf'
    # 2、需求贮存图片的目录
    imagePath = './imgs'
    pyMuPDF_fitz(pdfPath, imagePath)
简化版如下:
import fitz
def pdf_to_images(pdf_path, output_folder):
    pdf_document = fitz.open(pdf_path)
    for pg in range(pdf_document.page_count):
        page = pdf_document[pg]
        pix = page.get_pixmap(matrix=fitz.Matrix(2, 2))
        pix.save(f'{output_folder}/page_{pg + 1}.png')
pdf_path = 'your_pdf_file.pdf'
output_folder = 'output_images'
pdf_to_images(pdf_path, output_folder)

敞开全新阅览体会

通过将PDF转化为图画,你能够在不同场景下获得更好的阅览体会。你能够将图画用于演示、共享到交际媒体,甚至用于个人学习笔记

也能够避免别人直接复制你的效果。

两种方法对比:

pdf2imagefitz(来自PyMuPDF库)都是用于在Python中处理PDF文件的东西。它们在功用和用法上有一些差异,以下是它们的首要差异和比较:

pdf2image:

  1. 功用特色:

    • pdf2image 是一个用于将PDF文件的页面转化为图画的Python库。它专注于将PDF页面转化为图画格局(如PNG、JPEG等),便于在其他应用中运用,如图画处理、OCR等。
  2. 依靠库:

    • pdf2image 根据poppler-utils东西,它运用pdftoppm东西将PDF页面转化为图画。因此,在运用pdf2image之前,你需求确保现已装置了poppler-utils
  3. 运用简略:

    • pdf2image 供给了直观的API,易于运用。它能够从PDF文件中提取指定页面并将其转化为图画,十分适宜基本的PDF转图画需求。
  4. 示例代码:

    from pdf2image import convert_from_path
    images = convert_from_path('input.pdf')
    for i, image in enumerate(images):
        image.save(f'page_{i + 1}.png', 'PNG')
    

fitz(PyMuPDF库):

  1. 功用特色:

    • fitzPyMuPDF 库的一部分,它是一个功用丰富的PDF处理库,支持阅览、编辑和转化PDF文档。除了转化为图画,fitz 还供给了许多其他PDF操作的功用,如文本提取、标示等。
  2. 独立性:

    • fitzPyMuPDF 库的一部分,它不需求依靠外部东西。这使得在没有装置poppler-utils的情况下,依然能够运用 fitz 进行PDF操作。
  3. 更多灵活性:

    • fitz 不只能够将PDF页面转化为图画,还能够对PDF文档进行更复杂的操作,如获取页面信息、文本提取、页面合并、旋转、裁剪等。因此,假如你需求更多关于PDF的操作,fitz 是一个更强壮的挑选。
  4. 示例代码:

    import fitz
    pdf_document = fitz.open('input.pdf')
    page = pdf_document[0]
    pix = page.get_pixmap(matrix=fitz.Matrix(2, 2))
    pix.save('page_1.png')
    pdf_document.close()
    

综上所述,假如你只需求将PDF页面转化为图画,pdf2image 是一个更简略的挑选。而假如你需求更多PDF操作的灵活性,如文本提取、标示等,那么fitz(PyMuPDF)供给了更广泛的功用。挑选适宜的东西取决于你的详细需求。

结语:

将PDF文件转化为图画是一个简略却强壮的技巧,无论是与别人共享、演示,仍是用于个人学习,PDF转图画都能为你带来全新的阅览体会。试试这些方法,敞开文档的视觉之旅吧!

更多瑰宝

视频推送看这儿:
space.bilibili.com/1909782963

项目仓库看这儿:
github.com/w-x-x-w
gitee.com/w-_-x

公众号称号:编程启航

博客文章看这儿:
blog.csdn.net/weixin_6265…