Створення, редагування та перетворення PDF на зображення через Python API
Безкоштовний Python API для створення, редагування та перетворення PDF на зображення та навпаки. Перетворення PDF в текст, Rotate /Trim / Crop PDFs.
PDFsuite — це дуже корисна бібліотека Python, яка надає повну функціональність, пов’язану зі створенням документів PDF і керуванням ними. Бібліотека дуже стабільна, її можна легко запускати на MacOS (OS X). PDFsuite дуже простий у використанні та надає користувачам можливість керувати своїми PDF-файлами, а все, що вони можуть захотіти зробити з PDF-файлом, – лише одним клацанням миші.
Бібліотека містить багато функцій і містить кілька важливих функцій, пов’язаних із обробкою PDF-документів, як-от перетворення PDF-документів у PDF, об’єднання або розділення PDF-документів, перетворення зображень у PDF, обертання PDF, додавання номерів сторінок у PDF, вставлення водяних знаків у PDF PDF-файли, малюйте графіку в PDF-файлах, застосовуйте кварцові фільтри до PDF-файлів, переглядайте та читайте метадані, експортуйте PDF-сторінки як зображення, підраховуйте сторінки в PDF-файлах і багато іншого. Сценарії PDFsuite є відкритим вихідним кодом, повністю безкоштовні для використання в будь-якому проекті та можуть бути адаптовані будь-яким способом.
Почати роботу з PDF
Для запуску PDFsuite спочатку потрібно встановити python 3 і бібліотеку pyobjc, а після цього в Терміналі необхідно ввести наступний командний ряд і натисніть кнопку Повернення.
Встановлення pyobjc через pip
pip3 install pyobjc
Також можна встановити бібліотеку вручну; завантажте файли останньої версії безпосередньо зі сховища GitHub.
Перетворення PDF в Image & Інші формати
PDFsuite встановив повну функціональність для перетворення PDF документів у різні формати файлів зображень. NG, JPEG, Diff та інші популярні формати файлів зображень. Також можна створити образ батмана з кожної сторінки наданої PDF документів з легкістю. Після завершення процесу необхідно призначити окрему назву на кожен файл і зберегти його на диску. Також підтримує зміну дозволу, прозорості та інших параметрів. Перетворення PDF файлів в текстові та інші формати файлів.
Об'єднайте кілька PDF файлів за допомогою скриптів Python
Ви коли-небудь були в ситуації, коли потрібно об’єднати різні PDF-документи, щоб створити новий PDF-файл? Організаціям часто потрібно об’єднати кілька файлів PDF в один документ. Бібліотека PDFsuite полегшує своїм користувачам об’єднання кількох PDF-документів в один лише за допомогою кількох рядків коду Python. Він також додає запис змісту для кожного компонентного файлу. Бібліотека також повністю підтримує розділення великих документів PDF на менші в програмах Python.
Об’єднайте декілька PDF-файлів за допомогою 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()
Rotate, Trim, Crop PDFs або сторінки на 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)