通过Python API创建、编辑和转换PDF图
自由PythonAPI用于创建、编辑和转换图像、反之亦然。 合并/分裂和转换PDF文本、旋转/特里姆/作物PDF。
PDFsuite是一个非常有用的Python库、提供与PDF个文档创建和管理相关的完整功能。 图书馆非常稳定、可以很容易地在MacOS(OfX)上运行。 PDFsuite很容易使用、让用户能够管理他们的PDF个文件、他们可能想要做的一切只是单击。
该库功能非常丰富,包括几个与 PDF 文档处理相关的重要功能,例如将 PDF 文档转换为 PDF、合并或拆分 PDF 文档、将图像转换为 PDF、PDF 旋转、将页码添加到 PDF、将水印插入到 PDF、在 PDF 中绘制图形、将石英过滤器应用于 PDF、访问和读取元数据、将 PDF 页面导出为图像、计算 PDF 中的页面等等。 PDFsuite 脚本是开源的,可以完全免费用于任何类型的项目,并且可以以任何方式进行调整。
从PDF套装开始
为了首先运行PDFsuite、您需要安装 3和 库、之后在终端、请键入下列命令和压返。
通过管道安装防火堆
pip3 install pyobjc
也可以手动安装库; 直接从 GitHub 存储库下载最新版本文件。
PDF改为图像和其他形式
PDFsuite已将PDF个文档转换成各种图像文件格式的完整功能。 它提供NG、JPEG、扩展和其他流行图像文件格式。 还可以轻松地从提供的PDF个文档的每一页创建蝙蝠侠图像。 一旦过程完成、您需要为每个文件分配一个单独的名称并将其保存在磁盘上。 它还支持改变决议、透明度和其他参数。 还可以将PDF个文件转换为文本和其他文件格式。
使用Python脚本组合PDF文件
你有没有遇到过一个需要将不同的PDF个文档组合起来创建新的PDF个文件的情况? 各组织往往要求将多个PDF个文件合并成一个单一文件。 PDFsuite图书馆使用户很容易将PDF个文档合并成一个单一文档、只有几行Python代码。 它还为每个组件文件添加一个目录条目表。 图书馆也完全支持在Python应用程序中将大PDF个文档分成较小的文档。
通过Python API合并PDF文件
def merge(filename):
writeContext = None
shortName = os.path.splitext(filename)[0]
outFilename = shortName + "+wm.pdf"
metaDict = getDocInfo(filename)
writeContext = createOutputContextWithPath(outFilename, metaDict)
readPDF = createPDFDocumentWithPath(filename)
mergePDF = createPDFDocumentWithPath(watermark)
if writeContext != None and readPDF != None:
numPages = Quartz.CGPDFDocumentGetNumberOfPages(readPDF)
for pageNum in range(1, numPages + 1):
page = Quartz.CGPDFDocumentGetPage(readPDF, pageNum)
mergepage = Quartz.CGPDFDocumentGetPage(mergePDF, 1)
if page:
mediaBox = Quartz.CGPDFPageGetBoxRect(page, Quartz.kCGPDFMediaBox)
if Quartz.CGRectIsEmpty(mediaBox):
mediaBox = None
Quartz.CGContextBeginPage(writeContext, mediaBox)
Quartz.CGContextSetBlendMode(writeContext, Quartz.kCGBlendModeOverlay)
Quartz.CGContextDrawPDFPage(writeContext, page)
Quartz.CGContextDrawPDFPage(writeContext, mergepage)
Quartz.CGContextEndPage(writeContext)
Quartz.CGPDFContextClose(writeContext)
del writeContext
else:
print ("A valid input file and output file must be supplied.")
sys.exit(1)
if __name__ == "__main__":
for filename in sys.argv[1:]:
merge(filename)
通过Python将PDF文件转换为文本文件
开放源代码PDFsuite库包括了PDF个文档转换为多个支持文件格式的几个重要特性。 一个重要的特性是将PDF个文件的文本内容转换为外部文本文件、并将其保存到您选择的地方。 还可以将PDF个文档的每一页保存为一个单独的文件、并将其保存在不同的名称。
通过Python API将PDF份文件转换为文本文件
import os, sys
from Quartz import PDFDocument
from CoreFoundation import (NSURL, NSString)
# Can't seem to import this constant, so manually creating it.
NSUTF8StringEncoding = 4
def main():
for filename in sys.argv[1:]:
shortName = os.path.splitext(filename)[0]
outputfile = shortName+" text.txt"
pdfURL = NSURL.fileURLWithPath_(filename)
pdfDoc = PDFDocument.alloc().initWithURL_(pdfURL)
if pdfDoc :
pdfString = NSString.stringWithString_(pdfDoc.string())
pdfString.writeToFile_atomically_encoding_error_(outputfile, True, NSUTF8StringEncoding, None)
if __name__ == "__main__":
main()
Python应用中的旋转、三角、作物PDFs或页数
PDF套图书馆包括一些易于处理PDF个文件的重要功能。 它允许程序员在自己的Python应用程序中旋转、修整、作物、品特、水印、水印、规模和增加PDF个文档。 它提供了两种方法来旋转PDF页或完成文件。 第一个是创建一个新的PDF个上下文、图形变换原始的每一页并保存文件。 第二、你只需要调整每个页面上的“旋转”参数、就这样。
如何通过Python API发送PDF文件
import sys
import os
from Quartz import PDFDocument, kPDFDisplayBoxMediaBox, kPDFDisplayBoxTrimBox, CGRectEqualToRect
from CoreFoundation import NSURL
mediabox = kPDFDisplayBoxMediaBox
trimbox = kPDFDisplayBoxTrimBox
def trimPDF(filename):
hasBeenChanged = False
# filename = filename.decode('utf-8')
shortName = os.path.splitext(filename)[0]
outFilename = shortName + " TPS.pdf"
pdfURL = NSURL.fileURLWithPath_(filename)
pdfDoc = PDFDocument.alloc().initWithURL_(pdfURL)
if pdfDoc:
pages = pdfDoc.pageCount()
for p in range(0, pages):
page = pdfDoc.pageAtIndex_(p)
mediaBoxSize = page.boundsForBox_(mediabox)
trimBoxSize = page.boundsForBox_(trimbox)
if not CGRectEqualToRect(mediaBoxSize, trimBoxSize):
page.setBounds_forBox_(trimBoxSize, mediabox)
hasBeenChanged = True
if hasBeenChanged:
pdfDoc.writeToFile_(outFilename)
if __name__ == '__main__':
for filename in sys.argv[1:]:
trimPDF(filename)