python中图片转PDF的2种方法

方法一:

#coding:utf-8

import fpdf

#pdf对象构造器

#图片,毫米为单位,A4页面大小

pdf=fpdf.FPDF("p","mm","A4")

#创建一个新的页面

pdf.add_page()

#设置字体样式

pdf.set_font('Arial','B',20)

#单元格布局样式:200x25,标题,无边框,居中

pdf.cell(200,25,'swap',border=0,align="C")

#按照指定尺寸写入图片

pdf.image("123.png",65,50,100,100)

#文件保存:文件名,F=文件类型

pdf.output('temp.pdf','F')

方法二:

import glob

import fitz

import os

def pic2pdf():

doc = fitz.open()

for img in sorted(glob.glob("pic2pdf/*")): # 读取图片,确保按文件名排序

    print(img)

    imgdoc = fitz.open(img) # 打开图片

    pdfbytes = imgdoc.convertToPDF() # 使用图片创建单页的 PDF

    imgpdf = fitz.open("pdf", pdfbytes)

    doc.insertPDF(imgpdf) # 将当前页插入文档

    if os.path.exists("allimages.pdf"):

        os.remove("allimages.pdf")

    doc.save("allimages.pdf") # 保存pdf文件

    doc.close()

if __name__ == '__main__':

pic2pdf()                                                                                                    

                

Python提供了多库和工具来进行图片PDF的操作。其比较常用的是使用`PIL`(Python Imaging Library)库来处理图片,以及使用`reportlab`库来生成PDF文件。 下面是一个简单的示例代码,演示如何使用Python将多张图片换为PDF文件: ```python from PIL import Image from reportlab.pdfgen import canvas def images_to_pdf(image_paths, output_path): pdf = canvas.Canvas(output_path) for image_path in image_paths: image = Image.open(image_path) width, height = image.size pdf.setPageSize((width, height)) pdf.drawImage(image_path, 0, 0, width, height) pdf.showPage() pdf.save() # 调用示例 image_paths = ['image1.jpg', 'image2.jpg', 'image3.jpg'] output_path = 'output.pdf' images_to_pdf(image_paths, output_path) ``` 上述代码,首先导入了`PIL`库的`Image`模块和`reportlab`库的`canvas`模块。然后定义了一个名为`images_to_pdf`的函数,该函数接受图片路径列表和输出路径作为参数。在函数内部,通过循环遍历图片路径列表,打开每张图片并获取其宽度和高度。然后使用`reportlab`库的`canvas`对象创建一个PDF文件,并设置页面大小为当前图片的宽度和高度。接着使用`drawImage`方法图片绘制到PDF页面上,并调用`showPage`方法创建新的页面。最后调用`save`方法保存PDF文件。 你可以根据实际需求修改代码图片路径列表和输出路径,以及调整其他参数来满足你的需求。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值