导语:
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转化为图画,你能够在不同场景下获得更好的阅览体会。你能够将图画用于演示、共享到交际媒体,甚至用于个人学习笔记。
也能够避免别人直接复制你的效果。
两种方法对比:
pdf2image
和 fitz
(来自PyMuPDF库)都是用于在Python中处理PDF文件的东西。它们在功用和用法上有一些差异,以下是它们的首要差异和比较:
pdf2image:
-
功用特色:
-
pdf2image
是一个用于将PDF文件的页面转化为图画的Python库。它专注于将PDF页面转化为图画格局(如PNG、JPEG等),便于在其他应用中运用,如图画处理、OCR等。
-
-
依靠库:
-
pdf2image
根据poppler-utils
东西,它运用pdftoppm
东西将PDF页面转化为图画。因此,在运用pdf2image
之前,你需求确保现已装置了poppler-utils
。
-
-
运用简略:
-
pdf2image
供给了直观的API,易于运用。它能够从PDF文件中提取指定页面并将其转化为图画,十分适宜基本的PDF转图画需求。
-
-
示例代码:
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库):
-
功用特色:
-
fitz
是PyMuPDF
库的一部分,它是一个功用丰富的PDF处理库,支持阅览、编辑和转化PDF文档。除了转化为图画,fitz
还供给了许多其他PDF操作的功用,如文本提取、标示等。
-
-
独立性:
-
fitz
是PyMuPDF
库的一部分,它不需求依靠外部东西。这使得在没有装置poppler-utils
的情况下,依然能够运用fitz
进行PDF操作。
-
-
更多灵活性:
-
fitz
不只能够将PDF页面转化为图画,还能够对PDF文档进行更复杂的操作,如获取页面信息、文本提取、页面合并、旋转、裁剪等。因此,假如你需求更多关于PDF的操作,fitz
是一个更强壮的挑选。
-
-
示例代码:
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…