📅  最后修改于: 2023-12-03 14:52:49.872000             🧑  作者: Mango
在实际开发中,我们经常需要将图像转换为PDF格式进行保存或上传。Python提供了多种库来实现这个功能。本文将介绍如何使用Pillow和reportlab库来将图像转换为PDF。
pip install Pillow reportlab
from PIL import Image
from pathlib import Path
def image_to_pdf(image_path, pdf_path):
image = Image.open(image_path)
pdf_path = Path(pdf_path)
if not pdf_path.parent.exists():
pdf_path.parent.mkdir(parents=True)
image.save(pdf_path.with_suffix('.pdf'))
image_to_pdf('./image.jpg', './image.pdf')
这段代码使用Pillow库中的Image
对象打开图像文件,然后使用同名PDF文件保存。需要注意的是,如果PDF文件所在的文件夹不存在,需要使用Path
对象的mkdir
方法创建。
如果需要更加精细的控制PDF文件的布局,可以使用reportlab库。
from reportlab.lib.units import inch
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas
from PIL import Image
from pathlib import Path
def image_to_pdf2(image_path, pdf_path):
image = Image.open(image_path)
pdf_path = Path(pdf_path)
if not pdf_path.parent.exists():
pdf_path.parent.mkdir(parents=True)
c = canvas.Canvas(str(pdf_path.with_suffix('.pdf')), pagesize=letter)
c.drawImage(str(image_path), 0, 0, width=letter[0], height=letter[1])
c.save()
image_to_pdf2('./image.jpg', './image2.pdf')
这段代码使用reportlab库中的Canvas
对象来创建PDF文件,并使用drawImage
方法将图像绘制在PDF文件中。可以通过调整height
和width
参数控制图像的大小。需要注意的是,这个方法使用字符串作为参数传递文件路径,而不是Path
对象。
以上就是使用Pillow和reportlab库将图像转换为PDF的方法了。其中,使用Pillow库简单快速,适合简单的图像转换操作;而使用reportlab库可以更加精细控制PDF文件的布局,适合高级用途。