1. 产品
  2.   PDF格式
  3.   Python
  4.   PDFsuite
 
  

通过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 脚本是开源的,可以完全免费用于任何类型的项目,并且可以以任何方式进行调整。

Previous Next

从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)
 中国人