将图像转换为 PDF 文件是储存、展示及共享图像内容的高效方法。无论是扫描的文档、拍摄的照片还是数字图像集,将图像转换成 PDF 文件可以简化整理、传送的流程。同时,PDF 文档可以保留图像质量、减小文件大小并在最大程度上保持图像的展示顺序。本文将介绍如何使用 Spire.PDF for Python 通过 Python 程序将图像转换为 PDF。
安装 Spire.PDF for Python
本教程需要用到 Spire.PDF for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.PDF
如果您不清楚如何安装,请参考:如何在 Windows 中安装 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 天的临时许可证。