إنشاء وتحرير وتحويل ملفات PDF إلى صور عبر Python API

واجهة برمجة تطبيقات Python مجانية لإنشاء ملفات PDF وتحريرها وتحويلها إلى صور والعكس صحيح. دمج / تقسيم وتحويل ملفات PDF إلى نص ، تدوير / تقليم / اقتصاص ملفات PDF.

PDFsuite هي مكتبة Python مفيدة للغاية توفر وظائف كاملة تتعلق بإنشاء مستندات PDF وإدارتها. المكتبة مستقرة للغاية ويمكن تشغيلها بسهولة على نظام MacOS (OS X). يعد PDFsuite سهل الاستخدام للغاية ويمنح المستخدمين القدرة على إدارة ملفات PDF الخاصة بهم وكل ما قد يرغبون في القيام به لملف PDF هو مجرد نقرة واحدة.

المكتبة غنية بالميزات وقد تضمنت العديد من الميزات المهمة المتعلقة بمعالجة مستندات PDF ، مثل تحويل مستندات PDF إلى PDF أو دمج أو تقسيم مستندات PDF أو تحويل الصور إلى PDF أو تدوير ملف PDF أو إضافة أرقام الصفحات إلى PDF وإدراج العلامات المائية في ملفات PDF ورسم الرسومات في ملفات PDF وتطبيق مرشحات quartz على ملفات PDF والوصول إلى البيانات الوصفية وقراءتها وتصدير صفحات PDF كصور وعد الصفحات في PDF وغير ذلك الكثير. نصوص PDFsuite مفتوحة المصدر وهي مجانية تمامًا للاستخدام في أي نوع من المشاريع ويمكن تكييفها بأي شكل من الأشكال.

Previous Next

الشروع في استخدام PDFsuite

لتشغيل PDFsuite أولاً ، تحتاج إلى تثبيت python 3 ومكتبة pyobjc ، وبعد ذلك في Terminal ، يرجى كتابة الأمر التالي والضغط على Return.

قم بتثبيت pyobjc عبر Pip

 pip3 install pyobjc 

من الممكن أيضًا تثبيت المكتبة يدويًا ؛ تنزيل أحدث ملفات الإصدار مباشرةً من مستودع GitHub .

تحويل PDF إلى صورة وتنسيقات أخرى

يتضمن PDFsuite وظائف كاملة لتحويل مستندات PDF إلى تنسيقات ملفات صور متنوعة. يوفر PNG و JPEG و Tiff وتنسيقات ملفات الصور الشائعة الأخرى. من الممكن أيضًا إنشاء صورة نقطية من كل صفحة من مستندات 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()

قم بتدوير أو قص أو اقتصاص ملفات 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)
 عربي