1. Товары
  2.   PDF
  3.   Python
  4.   PDFsuite
 
  

Создание, редактирование и преобразование PDF в изображения через Python API

Бесплатный Python API для создания, редактирования и преобразования PDF в изображения и наоборот. Merge/split & Convert PDF to text, Rotate /Trim/Crop PDFs.

PDFsuite - очень полезная библиотека Python, которая обеспечивает полную функциональность, связанную с созданием и управлением PDF документа. Библиотека очень стабильна и может быть легко запущена на MacOS (Of X). PDFsuite очень простой в использовании и дает пользователям возможность управлять своими PDF файлами, и все, что они могли бы сделать с PDF, - это просто щелчок.

Библиотека очень многофункциональна и включает в себя несколько важных функций, связанных с обработкой PDF-документов, таких как преобразование PDF-документов в PDF, слияние или разделение PDF-документов, преобразование изображений в PDF, поворот PDF, добавление номеров страниц в PDF, вставка водяных знаков в PDF-файлы, рисуйте графику в PDF-файлах, применяйте кварцевые фильтры к PDF-файлам, получайте доступ к метаданным и читайте их, экспортируйте PDF-страницы в виде изображений, подсчитывайте страницы в PDF-файлах и многое другое. Скрипты PDFsuite с открытым исходным кодом полностью бесплатны для использования в проектах любого типа и могут быть адаптированы любым образом.

Previous Next

Начало с PDFSuite

Для запуска PDFSuite сначала необходимо установить python 3 и библиотеку pyobjc, а после этого в терминале, пожалуйста, введите следующую команду и нажмите Return.

Установка pyobjc через pip

 pip3 install pyobjc 

Также есть возможность установить библиотеку вручную; загрузите файлы последней версии непосредственно из репозитория GitHub.

Перевести PDF в Image & Other Formats

PDFsuite включает в себя полную функциональность для преобразования PDF документов в различные форматы файлов изображений. Он предоставляет NG, JPEG, Diff и другие популярные форматы файлов изображений. Также можно с легкостью создать изображение batman с каждой страницы предоставленных PDF документов. После завершения процесса необходимо назначить отдельное имя для каждого файла и сохранить его на диске. Он также поддерживает изменение разрешения, прозрачности и других параметров. Также можно конвертировать PDF файла в текстовые и другие форматы файлов.

Combine Multiple PDF Files using Python Scripts

Вы когда-нибудь были в ситуации, когда требуется объединить различные PDF-документы для создания нового PDF-файла? Организациям часто требуется объединить несколько PDF-файлов в один документ. Библиотека PDFsuite позволяет пользователям легко объединять несколько PDF-документов в один с помощью всего пары строк кода Python. Он также добавляет запись оглавления для каждого файла компонента. Библиотека также полностью поддерживает разделение больших документов PDF на более мелкие внутри приложений Python.

Merge Multiple PDF Files через Python API

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)

Перевести PDF файлы в текстовые файлы через Python

Библиотека PDFsuite с открытым исходным кодом включает несколько важных функций для преобразования PDF-документов в многочисленные поддерживаемые форматы файлов. Одной из важных функций является преобразование текстового содержимого файла PDF во внешний текстовый файл и сохранение его в выбранном вами месте. Также можно сохранить каждую страницу документа PDF в виде отдельного файла и сохранить его под другим именем.

Преобразование PDF-документов в текстовый файл через Python API

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()

Поворот, обрезка, обрезка PDF-файлов или страниц в приложениях Python

Библиотека PDFsuite включает несколько важных функций для удобной работы с PDF-файлами. Это позволяет программистам поворачивать, обрезать, обрезать, подкрашивать, наносить водяные знаки, масштабировать и промывать PDF-документы в своем собственном приложении Python. Он предоставил два способа поворота страницы PDF или всего файла. Первый — создать новый контекст PDF, графически преобразовать каждую страницу оригинала и сохранить файл. Во-вторых, вам просто нужно настроить параметр «поворот» на каждой странице и все.

 

Как выбрать PDF файлы через Python API

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)
 Русский