一、说明
二、需要哪些程序包?
首先,您只需要一个 Python 环境,最好是 3.10 或更高版本。本教程中的代码是在使用 Python 3.10.12 的 Google Colab 环境中执行的。
第一步是确保在 Python 环境中安装以下包:
- img2pdf
- PyPDF2
- Pillow
Pip 可用于在 Colab 中安装这些软件包:
!pip install img2pdf PyPDF2 Pillow
第一个包img2pdf将用于将图像转换为PDF文件。然后,PyPDF2 可用于将多个 PDF 合并为一个 PDF 文件。枕头是一个图像处理库;它提供了转换所需的附加功能。
现在可以导入这些包以及 和 。os
google.colab
# required libraries
import os
import img2pdf
import PyPDF2
from PIL import Image
from google.colab import files
三、img2pdf官方文档
img2pdf是一个开源的Python包,用于将图像转换为pdf格式。它包括另一个模块枕头,也可用于增强图像(亮度,对比度和其他东西) 使用此命令安装软件包
pip install img2pdf
以下是实现:图像可以使用img2pdf模块提供的img2pdf.convert()函数转换为pdf字节,然后在wb模式下打开pdf文件并用字节写入。
- python
# Python3 program to convert image to pdf
# using img2pdf library
# importing necessary libraries
import img2pdf
from PIL import Image
import os
# storing image path
img_path = "C: / Users / Admin / Desktop / GfG_images / do_nawab.png"
# storing pdf path
pdf_path = "C: / Users / Admin / Desktop / GfG_images / file .pdf"
# opening image
image = Image. open (img_path)
# converting into chunks using img2pdf
pdf_bytes = img2pdf.convert(image.filename)
# opening or creating pdf file
file = open (pdf_path, "wb")
# writing pdf files with chunks
file .write(pdf_bytes)
# closing image file
image.close()
# closing pdf file
file .close()
# output
print ("Successfully made pdf file ")
|
输出:
Successfully made pdf file
四、准备映像
在编写更多代码之前,了解每个图像的文件位置非常重要。为了尽可能简化此操作,可以在 Colab 环境中创建一个新文件夹:
!mkdir images
所有图像都需要使用 提供的上传程序同时上传到此位置。这些文件将根据其名称进行排序,因此它们应命名为类似 .google.colab
page1.png, page2.png, ..., page9.png
os.chdir("images")
files.upload()
将图像存储在已知的文件位置后,其名称可以存储在列表中。
imgs = os.listdir()
imgs.sort()
如果图像超过 9 个,则此方法可能会出现问题,应按文件所需的顺序创建列表。
五、将图像转换为 PDF
然后可以使用 for 循环遍历每个图像,将其转换为 PDF,并将其写入名为 的新文件夹。pdfs
# create a folder called pdfs
os.mkdir("../pdfs")
# loop over each image
for ind, img in enumerate(imgs):
# open each image
with Image.open(img) as image:
# convert the image to a PDF
pdf = img2pdf.convert(image.filename)
# write the PDF to its final destination
with open(f"../pdfs/pdf{ind+1}.pdf", "wb") as file:
file.write(pdf)
print(f"Converted {img} to pdf{ind+1}.pdf")
六、合并文档
将图像转换为 PDF 文件后,可以独立使用并使用 下载它们,也可以将它们合并在一起。要将文件合并在一起,请提取 PDF 文件列表并按页码对其进行排序。files.download('filename.pdf')
os.chdir("../pdfs")
pdfs = os.listdir()
同样,如果有超过 9 个图像或 PDF,它们应按各自的顺序存储在列表中。
对象可用于将每个 PDF 连接成单个文件。PdfMerger
pdfMerge = PyPDF2.PdfMerger()
# loop through each pdf page
for pdf in pdfs:
# open each pdf
with open(pdf, 'rb') as pdfFile:
# merge each file
pdfMerge.append(PyPDF2.PdfReader(pdfFile))
# write the merged pdf
pdfMerge.write('merged.pdf')
# download the final pdf
files.download('merged.pdf')
最终合并的PDF将按其各自名称的顺序包含每个图像。
七、完整程序
完整的代码可以在下面找到。它是高度可定制的,以满足大多数用例。文章来源:https://www.toymoban.com/news/detail-691932.html
!pip install img2pdf PyPDF2 Pillow
!mkdir images
# required libraries
import os
import img2pdf
import PyPDF2
from PIL import Image
from google.colab import files
os.chdir("images")
files.upload()
imgs = os.listdir()
# create a folder called pdfs
os.mkdir("../pdfs")
# loop over each image
for ind, img in enumerate(imgs):
# open each image
with Image.open(img) as image:
# convert the image to a PDF
pdf = img2pdf.convert(image.filename)
# write the PDF to its final destination
with open(f"../pdfs/pdf{ind+1}.pdf", "wb") as file:
file.write(pdf)
print(f"Converted {img} to pdf{ind+1}.pdf")
os.chdir("../pdfs")
pdfs = os.listdir()
pdfs.sort()
pdfMerge = PyPDF2.PdfMerger()
# loop through each pdf page
for pdf in pdfs:
# open each pdf
with open(pdf, 'rb') as pdfFile:
# merge each file
pdfMerge.append(PyPDF2.PdfReader(pdfFile))
# write the merged pdf
pdfMerge.write('merged.pdf')
# download the final pdf
files.download('merged.pdf')
八、引用
- https://www.geeksforgeeks.org/python-convert-image-to-pdf-using-img2pdf-module/
- Merging PDFs with Python | Python-bloggers
-
亨特·菲利普斯文章来源地址https://www.toymoban.com/news/detail-691932.html
·
到了这里,关于如何在 Python 中将图像转换为 PDF的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!