将PDF转换为不同的图像格式在Python中
概述
本文解释了如何使用Python将PDF转换为不同的图像格式。它涵盖了以下主题。
图像格式: TIFF
图像格式: BMP
图像格式: EMF
图片格式: JPG
图片格式: PNG
图片格式: GIF
图片格式: SVG
Python 将 PDF 转换为图像
Aspose.PDF for Python 使用多种方法将 PDF 转换为图像。 一般来说,我们使用两种方法:使用设备方法进行转换和使用SaveOption进行转换。本节将向您展示如何使用其中一种方法将PDF文档转换为BMP、JPEG、GIF、PNG、EMF、TIFF和SVG格式的图像格式。
库中有几个类允许您使用虚拟设备来转换图像。DocumentDevice用于转换整个文档,而ImageDevice用于特定页面。
使用DocumentDevice类转换PDF
Aspose.PDF for Python 使得将PDF页面转换为TIFF图像成为可能。
TiffDevice(基于DocumentDevice)类允许您将PDF页面转换为TIFF图像。此类提供了一个名为Process
的方法,该方法允许您将PDF文件中的所有页面转换为单个TIFF图像。
尝试在线将PDF转换为TIFF Aspose.PDF for Python via .NET 提供了一个在线免费应用程序 “PDF to TIFF”,您可以在其中尝试调查其功能和工作质量。
将 PDF 页面转换为一个 TIFF 图像
Aspose.PDF for Python 说明如何将 PDF 文件中的所有页面转换为单个 TIFF 图像:
-
创建一个 Document 类的对象。
-
创建 TiffSettings 和 TiffDevice 对象。
-
调用 TiffDevice.Process() 方法将 PDF 文档转换为 TIFF。
-
要设置输出文件的属性,请使用 TiffSettings 类。
以下代码片段展示了如何将所有 PDF 页面转换为单个 TIFF 图像。
from asposepdf import Api, Device
# 初始化许可证
documentName = "testdata/license/Aspose.PDF.PythonviaJava.lic"
licenseObject = Api.License()
licenseObject.setLicense(documentName)
# 打开 PDF 文档
DIR_INPUT = "testdata/"
DIR_OUTPUT = "testout/"
input_pdf = DIR_INPUT + "source.pdf"
output_image = DIR_OUTPUT + "image.tiff"
# 打开 PDF 文档
document = Api.Document(input_pdf)
# 创建 Resolution 对象
resolution = Device.Resolution(300)
# 创建 TiffSettings 对象
tiffSettings = Device.TiffSettings()
tiffSettings._CompressionType = Device.CompressionType.LZW
tiffSettings._ColorDepth = Device.ColorDepth.Default
tiffSettings._Skip_blank_pages = False
# 创建 TIFF 设备
tiffDevice = Device.TiffDevice(resolution, tiffSettings)
# 转换特定页面并将图像保存到流
tiffDevice.process(document, output_image)
使用 ImageDevice 类转换 PDF
ImageDevice
是 BmpDevice
、JpegDevice
、GifDevice
、PngDevice
和 EmfDevice
的祖先。
-
BmpDevice 类允许您将 PDF 页面转换为 BMP 图像。
-
EmfDevice 类允许您将 PDF 页面转换为 EMF 图像。
-
JpegDevice 类允许您将 PDF 页面转换为 JPEG 图像。
-
PngDevice 类允许您将 PDF 页面转换为 PNG 图像。
-
GifDevice 类允许您将 PDF 页面转换为 GIF 图像。
让我们看看如何将PDF页面转换为图像。
BmpDevice类提供了一个名为Process的方法,允许您将PDF文件的特定页面转换为BMP图像格式。其他类也有相同的方法。所以,如果我们需要将PDF页面转换为图像,我们只需实例化所需的类。
以下步骤和Python代码片段展示了这种可能性
步骤:在Python中将PDF转换为图像(BMP,EMF,JPG,PNG,GIF)
- 使用 Document 类加载 PDF 文件。
- 创建 ImageDevice 子类的实例,例如:
- BmpDevice(将 PDF 转换为 BMP)
- EmfDevice(将 PDF 转换为 Emf)
- JpegDevice(将 PDF 转换为 JPG)
- PngDevice(将 PDF 转换为 PNG)
- GifDevice(将 PDF 转换为 GIF)
- 调用 ImageDevice.Process() 方法执行 PDF 到图像的转换。
将 PDF 转换为 BMP
from asposepdf import Api, Device
DIR_INPUT = "testdata/"
DIR_OUTPUT = "testout/"
input_pdf = DIR_INPUT + "source.pdf"
output_pdf = DIR_OUTPUT + "image"
# 打开 PDF 文档
document = Api.Document(input_pdf)
# 创建分辨率对象
resolution = Device.Resolution(300)
device = Device.BmpDevice(resolution)
for i in range(0, document.getPages.size):
# 创建保存的文件名
imageFileName = output_pdf + "_page_" + str(i + 1) + "_out.bmp"
# 转换特定页面并将图像保存到文件
device.process(document.getPages.getPage(i + 1), outputFileName=imageFileName)
将 PDF 转换为 EMF
from asposepdf import Api, Device
DIR_INPUT = "../../testdata/"
DIR_OUTPUT = "../../testout/"
input_pdf = DIR_INPUT + "source.pdf"
output_pdf = DIR_OUTPUT + "image"
# 打开 PDF 文档
document = Api.Document(input_pdf)
# 创建分辨率对象
resolution = Device.Resolution(300)
device = Device.EmfDevice(resolution)
for i in range(0, document.getPages.size):
# 创建保存的文件名
imageFileName = output_pdf + "_page_" + str(i + 1) + "_out.emf"
# 转换特定页面并将图像保存到文件
device.process(document.getPages.getPage(i + 1), outputFileName=imageFileName)
将 PDF 转换为 JPEG
from asposepdf import Api, Device
DIR_INPUT = "../../testdata/"
DIR_OUTPUT = "../../testout/"
input_pdf = DIR_INPUT + "source.pdf"
output_pdf = DIR_OUTPUT + "image"
# 打开 PDF 文档
document = Api.Document(input_pdf)
# 创建分辨率对象
resolution = Device.Resolution(300)
device = Device.JpegDevice(resolution)
for i in range(0, document.getPages.size):
# 创建保存的文件名
imageFileName = output_pdf + "_page_" + str(i + 1) + "_out.jpeg"
# 转换特定页面并将图像保存到文件
device.process(document.getPages.getPage(i + 1), outputFileName=imageFileName)
将 PDF 转换为 PNG
from asposepdf import Api, Device
DIR_INPUT = "../../testdata/"
DIR_OUTPUT = "../../testout/"
input_pdf = DIR_INPUT + "source.pdf"
output_pdf = DIR_OUTPUT + "image"
# 打开 PDF 文档
document = Api.Document(input_pdf)
# 创建分辨率对象
resolution = Device.Resolution(300)
device = Device.PngDevice(resolution)
for i in range(0, document.getPages.size):
# 创建保存的文件名
imageFileName = output_pdf + "_page_" + str(i + 1) + "_out.png"
# 转换特定页面并将图像保存到文件
device.process(document.getPages.getPage(i + 1), outputFileName=imageFileName)
将 PDF 转换为 GIF
from asposepdf import Api, Device
DIR_INPUT = "../../testdata/"
DIR_OUTPUT = "../../testout/"
input_pdf = DIR_INPUT + "source.pdf"
output_pdf = DIR_OUTPUT + "image"
# 打开 PDF 文档
document = Api.Document(input_pdf)
# 创建分辨率对象
resolution = Device.Resolution(300)
device = Device.GifDevice(resolution)
for i in range(0, document.getPages.size):
# 创建保存的文件名
imageFileName = output_pdf + "_page_" + str(i + 1) + "_out.gif"
# 转换特定页面并将图像保存到文件
device.process(document.getPages.getPage(i + 1), outputFileName=imageFileName)
尝试在线将PDF转换为PNG
作为我们免费应用程序如何工作的示例,请查看下一个功能。
Aspose.PDF for Python为您提供在线免费应用程序“PDF to PNG”,您可以尝试调查其功能和工作质量。
使用SaveOptions类转换PDF
本文的这一部分向您展示如何使用Python和SaveOptions类将PDF转换为SVG。
可缩放矢量图形 (SVG) 是一种基于 XML 的文件格式的二维矢量图形规范,包括静态和动态(交互式或动画)的图形。SVG 规范是一个开放标准,自 1999 年以来由万维网联盟 (W3C) 开发。
SVG 图像及其行为在 XML 文本文件中定义。这意味着它们可以被搜索、索引、脚本化,并在需要时被压缩。作为 XML 文件,SVG 图像可以用任何文本编辑器创建和编辑,但使用诸如 Inkscape 之类的绘图程序创建它们通常更为方便。
Aspose.PDF for Python 支持将 SVG 图像转换为 PDF 格式的功能,并且还提供将 PDF 文件转换为 SVG 格式的能力。 为满足此要求,SvgSaveOptions 类已被引入到 Aspose.PDF 命名空间中。实例化一个 SvgSaveOptions 对象并将其作为第二个参数传递给 Document.Save() 方法。
以下代码片段展示了使用 Python 将 PDF 文件转换为 SVG 格式的步骤。
- 创建一个 Document 类的对象。
- 使用需要的设置创建 SvgSaveOptions 对象。
- 调用 Document.Save() 方法并传递 SvgSaveOptions 对象将 PDF 文档转换为 SVG。
将 PDF 转换为 SVG
from asposepdf import Api
documentName = "testdata/input.pdf"
doc = Api.Document(documentName, None)
documentOutName = "testout/out.svg"
doc.save(documentOutName, Api.SaveFormat.Svg)