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

Cipta, Edit & Tukar PDF kepada Imej melalui Python API

API Python percuma untuk mencipta, mengedit dan menukar PDF kepada imej dan sebaliknya. Gabung/pisah & tukar PDF kepada teks, Putar /Pangkas/Pangkas PDF.

PDFsuite ialah perpustakaan Python yang sangat berguna yang menyediakan fungsi lengkap yang berkaitan dengan penciptaan dan pengurusan dokumen PDF. Pustaka ini sangat stabil dan boleh dijalankan dengan mudah pada MacOS (OS X). PDFsuite sangat mudah digunakan dan memberi pengguna keupayaan untuk mengurus fail PDF mereka dan semua yang mereka mungkin mahu lakukan pada PDF hanya dengan satu klik sahaja.

Perpustakaan ini sangat kaya dengan ciri dan telah menyertakan beberapa ciri penting yang berkaitan dengan pengendalian dokumen PDF, seperti penukaran dokumen PDF kepada PDF, menggabungkan atau Memisahkan dokumen PDF, menukar imej kepada PDF, putaran PDF, Menambah nombor halaman ke PDF, memasukkan Tera Air ke PDF, lukis grafik dalam PDF, gunakan penapis kuarza pada PDF, akses dan baca metadata, eksport halaman PDF sebagai imej, kira halaman dalam PDF dan banyak lagi. Skrip PDFsuite adalah sumber terbuka sepenuhnya percuma untuk digunakan dalam apa-apa jenis projek dan boleh disesuaikan dalam apa jua cara.

Previous Next

Bermula dengan PDFsuite

Untuk menjalankan PDFsuite terlebih dahulu anda perlu memasang python 3 dan perpustakaan pyobjc, dan selepas itu di Terminal sila taip arahan berikut dan tekan Return.

Pasang pyobjc melalui pip

 pip3 install pyobjc 

Ia juga mungkin untuk memasang perpustakaan secara manual; muat turun fail keluaran terkini terus daripada repositori GitHub.

Tukar PDF kepada Imej & Format Lain

PDFsuite telah menggabungkan fungsi lengkap untuk menukar dokumen PDF kepada pelbagai format fail imej. Ia menyediakan PNG, JPEG, Tiff dan format fail imej popular yang lain. Ia juga mungkin untuk mencipta imej bitmap dari setiap halaman dokumen PDF yang disediakan dengan mudah. Setelah proses selesai, anda perlu menetapkan nama berasingan untuk setiap fail dan menyimpannya pada cakera. Ia juga menyokong mengubah resolusi, ketelusan dan parameter lain. Anda juga boleh menukar fail PDF kepada teks & format fail lain.

Gabungkan Berbilang Fail PDF menggunakan Skrip Python

Pernahkah anda berada dalam situasi di mana ia diperlukan untuk menggabungkan dokumen PDF yang berbeza untuk mencipta fail PDF baharu? Organisasi sering memerlukan penggabungan berbilang fail PDF ke dalam satu dokumen. Pustaka PDFsuite memudahkan penggunanya untuk menggabungkan berbilang dokumen PDF menjadi satu dengan hanya beberapa baris kod Python. Ia juga menambah entri jadual kandungan untuk setiap fail komponen. Perpustakaan ini juga menyokong sepenuhnya pembahagian dokumen PDF yang besar kepada yang lebih kecil di dalam aplikasi Python.

Gabungkan Berbilang Fail PDF melalui 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)

Tukar Fail PDF kepada Fail Teks melalui Python

Pustaka PDFsuite sumber terbuka telah menyertakan beberapa ciri penting untuk penukaran dokumen PDF kepada pelbagai format fail sokongan. Satu ciri penting ialah menukar kandungan teks fail PDF kepada fail teks luaran dan menyimpannya ke tempat pilihan anda. Anda juga boleh menyimpan setiap halaman dokumen PDF sebagai fail berasingan dan menyimpannya dengan nama yang berbeza.

Tukar Dokumen PDF kepada Fail Teks melalui API Python

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

Putar, Pangkas, Pangkas PDF atau Halaman dalam Apl Python

Pustaka PDFsuite telah menyertakan beberapa fungsi penting untuk mengendalikan fail PDF dengan mudah. Ia membolehkan pengaturcara memutar, memangkas, memangkas, mewarna, tera air, skala dan membilas dokumen PDF di dalam aplikasi Python mereka sendiri. Ia telah menyediakan dua cara untuk memutar halaman PDF atau fail lengkap. Yang pertama ialah mencipta konteks PDF baharu, mengubah setiap halaman asal secara grafik dan menyimpan fail tersebut. Kedua, anda hanya perlu melaraskan parameter 'putaran' pada setiap halaman dan itu sahaja.

 

Cara Memangkas Fail PDF melalui API Python

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