Создание, редактирование и преобразование 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 с открытым исходным кодом полностью бесплатны для использования в проектах любого типа и могут быть адаптированы любым образом.
Начало с 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)