将图像转换为 pdf 文件是储存、展示及共享图像内容的高效方法。无论是扫描的文档、拍摄的照片还是数字图像集,将图像转换成 pdf 文件可以简化整理、传送的流程。同时,pdf 文档可以保留图像质量、减小文件大小并在最大程度上保持图像的展示顺序。本文将介绍如何使用 spire.pdf for python 通过 python 程序将图像转换为 pdf。
安装 spire.pdf for python
本教程需要用到 spire.pdf for python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 vs code 中。
pip install spire.pdf
如果您不清楚如何安装,请参考:如何在 vs code 中安装 spire.pdf for python
通过 python 将单张图片转换为 pdf 文档
通过 spire.pdf for python,开发者可以载入图片并创建与图片相同大小的 pdf 页面,然后将图片添加到页面中,从而来实现图片到 pdf 文档的转换。以下是详细操作步骤:
- 创建 pdfdocument 类的对象。
- 使用 pdfdocument.pagesettings.setmargins() 方法将页面边距设置为零。
- 使用 pdfimage.fromfile() 方法载入图片。
- 通过 pdfimage.physicaldimension.width 属性和 pdfimage.physicaldimension.height 属性获取图片的高度和宽度。
- 使用 pdfdocument.pages.add() 方法在 pdf 文档中创建一个与图片相同大小的页面。
- 使用 pdfpagebase.canvas.drawimage() 方法将图片绘制在页面上。
- 使用 pdfdocument.savetofile() 方法保存 pdf 文档。
- python
from spire.pdf.common import *
from spire.pdf import *
# 创建pdfdocument类的对象
pdf = pdfdocument()
# 清除文档页边距
pdf.pagesettings.setmargins(0.0)
# 载入图片
image = pdfimage.fromfile("sample.jpg")
# 获取图片的高度和宽度
width = image.physicaldimension.width
height = image.physicaldimension.height
# 创建一个与图片相同大小的页面
page = pdf.pages.add(sizef(width, height))
# 将图片绘制在页面上
page.canvas.drawimage(image, 0.0, 0.0, width, height)
# 保存pdf文档
pdf.savetofile("output/单图转pdf.pdf")
pdf.close()
通过 python 将文件夹中的多张图片转换为 pdf
为了将一个文件夹中的所有图像转换为 pdf 文档,需要遍历文件夹中的每张图片,并将每张图片分别添加到相同大小的 pdf 页面中。具体步骤如下:
- 创建 pdfdocument 类的对象。
- 使用 pdfdocument.pagesettings.setmargins() 方法将页面边距设置为零。
- 获取存储图像的文件夹。
- 遍历文件夹中的每个图像文件,并获取特定图像的宽度和高度。
- 使用 pdfdocument.pages.add() 方法向 pdf 文档添加一个与图像宽度和高度相同的新页面。
- 使用 pdfpagebase.canvas.drawimage() 方法在页面上绘制图像。
- 使用 pdfdocument.savetofile() 方法保存文档。
- python
from spire.pdf.common import *
from spire.pdf import *
import os
# 创建一个 pdfdocument 类的对象
doc = pdfdocument()
# 将页面边距设置为 0
doc.pagesettings.setmargins(0.0)
# 获取存储图像的文件夹路径
path = '图片/'
files = os.listdir(path)
# 遍历文件夹中的文件
for root, dirs, files in os.walk(path):
for file in files:
# 加载特定的图像
image = pdfimage.fromfile(os.path.join(root, file))
# 获取图像的宽度和高度
width = image.physicaldimension.width
height = image.physicaldimension.height
# 添加一个与图像大小相同的页面
page = doc.pages.add(sizef(width, height))
# 在页面的 (0, 0) 位置绘制图像
page.canvas.drawimage(image, 0.0, 0.0, width, height)
# 保存到文件
doc.savetofile('output/多图转pdf.pdf')
doc.dispose()
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。