1. محصولات
  2.   PDF
  3.   Python
  4.   PDFsuite
 
  

ایجاد، ویرایش و تبدیل PDF به تصاویر از طریق Python API

API رایگان پایتون برای ایجاد، ویرایش و تبدیل PDF به تصاویر و بالعکس. ادغام / تقسیم و تبدیل PDF به متن، چرخش / برش / برش PDF.

PDFsuite یک کتابخانه Python بسیار مفید است که عملکرد کامل مربوط به ایجاد و مدیریت اسناد PDF را ارائه می دهد. این کتابخانه بسیار پایدار است و به راحتی می توان آن را در MacOS (OS X) اجرا کرد. استفاده از PDFsuite بسیار آسان است و به کاربران این امکان را می‌دهد تا فایل‌های PDF خود را مدیریت کنند و هر کاری را که احتمالاً می‌خواهند با PDF انجام دهند تنها با یک کلیک فاصله دارد.

این کتابخانه دارای ویژگی های بسیار غنی است و دارای چندین ویژگی مهم مرتبط با مدیریت اسناد PDF است، مانند تبدیل اسناد PDF به PDF، ادغام یا تقسیم اسناد PDF، تبدیل تصاویر به PDF، چرخش PDF، افزودن شماره صفحات به PDF، درج واترمارک در فایل‌های PDF، ترسیم گرافیک در فایل‌های PDF، اعمال فیلترهای کوارتز روی فایل‌های PDF، دسترسی و خواندن فراداده، صادرات صفحات PDF به‌عنوان تصویر، شمارش صفحات در PDF و بسیاری موارد دیگر. اسکریپت های PDFsuite متن باز هستند و برای استفاده در هر نوع پروژه ای کاملا رایگان هستند و می توانند به هر شکلی سازگار شوند.

Previous Next

شروع کار با PDFsuite

برای اجرای PDFsuite ابتدا باید پایتون 3 و کتابخانه pyobjc را نصب کنید و پس از آن در ترمینال دستور زیر را تایپ کرده و Return را فشار دهید.

pyobjc را از طریق pip نصب کنید

 pip3 install pyobjc 

همچنین امکان نصب کتابخانه به صورت دستی وجود دارد. آخرین فایل های نسخه را مستقیماً از مخزن GitHub دانلود کنید.

تبدیل PDF به تصویر و فرمت های دیگر

PDFsuite دارای عملکرد کامل برای تبدیل اسناد PDF به فرمت های مختلف فایل تصویری است. این فرمت های PNG، JPEG، Tiff و سایر فرمت های فایل تصویری محبوب را ارائه می دهد. همچنین امکان ایجاد یک تصویر بیت مپ از هر صفحه از اسناد PDF ارائه شده به راحتی وجود دارد. پس از تکمیل فرآیند، باید یک نام جداگانه به هر فایل اختصاص دهید و آن را روی دیسک ذخیره کنید. همچنین از تغییر وضوح، شفافیت و سایر پارامترها پشتیبانی می کند. همچنین امکان تبدیل فایل های PDF به متن و سایر فرمت های فایل وجود دارد.

چندین فایل PDF را با استفاده از اسکریپت پایتون ترکیب کنید

آیا تا به حال در موقعیتی بوده اید که لازم باشد اسناد PDF مختلف را برای ایجاد یک فایل PDF جدید ترکیب کنید؟ سازمان ها اغلب نیاز به ادغام چندین فایل PDF در یک سند دارند. کتابخانه PDFsuite این امکان را برای کاربران خود فراهم می کند که چندین سند PDF را با تنها چند خط کد پایتون ترکیب کنند. همچنین برای هر فایل کامپوننت، فهرستی از مطالب را اضافه می کند. این کتابخانه همچنین به طور کامل از تقسیم اسناد PDF بزرگ به اسناد کوچکتر در داخل برنامه های پایتون پشتیبانی می کند.

ادغام چندین فایل 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 به فایل متنی از طریق پایتون

کتابخانه 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 یا صفحات در برنامه های پایتون

کتابخانه PDFsuite چندین قابلیت مهم برای مدیریت آسان فایل‌های PDF را شامل می‌شود. این به برنامه نویسان اجازه می دهد تا اسناد PDF را در برنامه پایتون خود بچرخانند، برش دهند، برش دهند، رنگ آمیزی، واترمارک، مقیاس بندی و شستشو دهند. دو راه برای چرخاندن یک صفحه 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)
 فارسی