1. produkty
  2.   PDF
  3.   Python
  4.   PDFsuite
 
  

Vytvořit, Upravit a převést PDF na obrázky přes Python API

Zdarma Python API pro vytváření, úpravy a převod PDF na obrázky a naopak. Sloučit/rozdělit a převést PDF na text, otočit/oříznout/oříznout PDF.

PDFsuite je velmi užitečná knihovna Python, která poskytuje kompletní funkcionalitu související s vytvořením a správou dokumentů PDF. Knihovna je velmi stabilní a lze snadno spustit na MacOS (Z X). PDFsuite je velmi snadné použití a dává uživatelům možnost spravovat své PDF soubory a vše, co by mohly chtít udělat až PDF je jen kliknout pryč.

Knihovna je velmi bohatá na funkce a obsahuje několik důležitých funkcí souvisejících se zpracováním dokumentů PDF, jako je převod dokumentů PDF do formátu PDF, slučování nebo rozdělení dokumentů PDF, převod obrázků do PDF, rotace PDF, přidávání čísel stránek do PDF, vkládání vodoznaků do PDF, kreslení grafiky v PDF, použití křemenných filtrů na PDF, přístup a čtení metadat, export stránek PDF jako obrázků, počítání stránek v PDF a mnoho dalšího. Skripty PDFsuite jsou open source, jsou zcela zdarma pro použití v jakémkoli druhu projektu a lze je jakkoli upravit.

Previous Next

Začínáme s PDFsuite

Chcete-li spustit PDFsuite nejprve potřebujete nainstalovat Python 3 a knihovnu pyobjc a poté, co v Terminálu zadejte následující příkaz a stiskněte Vrácení.

Instalace pyobjc přes pip

 pip3 install pyobjc 

Knihovnu je také možné nainstalovat ručně; stáhněte si soubory nejnovější verze přímo z úložiště GitHub.

Převést PDF na obrázek a další formáty

PDFsuite obsahuje kompletní funkcionalitu pro konverzi PDF dokumentů do různých formátů obrázků. Poskytuje NG, JPEG, Diff a další populární formáty obrázků. Je také možné vytvořit netopýrový obraz z každé stránky poskytnutých PDF dokumentů s lehkostí. Jakmile je proces kompletní, musíte přiřadit samostatný název na každý soubor a uložit jej na disku. Podporuje také změnu rozlišení, průhlednosti a dalších parametrů. Je možné převést PDF souborů do textových a jiných formátů souborů.

Kombinovat více PDF souborů pomocí skriptů Python

Už jste někdy v situaci, kdy je nutné kombinovat různé PDF dokumentů pro vytvoření nového PDF souboru? Organizace často vyžadují sloučení více souborů PDF do jediného dokumentu. Knihovna PDFsuite usnadňuje svým uživatelům kombinovat více PDF dokumentů do jednoho s pouhým několika řádky kódu Pythonu. Obsahuje také tabulku obsahu pro každý soubor komponent. Knihovna také plně podporuje rozdělení velkých PDF dokumentů do menších aplikací v Pythonu.

Sloučit více PDF souborů přes 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)

Převést PDF souborů do textového souboru přes Python

Open source PDFsuite knihovna obsahuje několik důležitých funkcí pro konverzi dokumentů do mnoha formátů podpory. Jedním z důležitých funkcí je konverze textového obsahu souboru PDF do externího textového souboru a uložit jej na místo vaší volby. Je také možné uložit každou stránku z PDF dokumentů jako samostatný soubor a uložit jej s jiným jménem.

Převést PDF dokumentů do textového souboru přes 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()

Otočit, oříznutí, oříznutí PDFs nebo stránky v aplikaci Python

Knihovna PDFsuite obsahuje několik důležitých funkcí pro snadnou manipulaci s PDF soubory. Umožňuje programátorům otočení, oříznutí, oříznutí, odstínu, vodoznaku, měřítku a zvýšit PDF dokumentů uvnitř vlastní aplikace Python. Poskytuje dva způsoby, jak otáčet PDF stránek nebo kompletní soubor. První je vytvořit nový PDF kontext, graficky transformovat každou stránku původního a uložit soubor. Za druhé, stačí upravit parametr 'rotation' na každé stránce a to je.

 

Jak oříznout PDF souborů pomocí 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)
 Čeština