کتابخانه Python منبع باز برای تبدیل فایلهای PDF
API رایگان Python به توسعه دهندگان اجازه می دهد تا فایل های PDF را صادر کنند، بچرخانند، ادغام و الحاق کنند، داده ها و عناصر را از PDF استخراج کنند.
pdfrw یک کتابخانه منبع باز خالص پایتون است که به توسعه دهندگان نرم افزار امکان خواندن و نوشتن فایل های PDF را بدون نصب نرم افزار خاص خارجی می دهد. استفاده از کتابخانه برنامه نویسی pdfrw بسیار ساده است و کد منبع به خوبی مستند، بسیار ساده و قابل درک است. این کتابخانه دارای پشتیبانی یونیکد مناسب برای رشته های متنی در فایل های PDF و همچنین سریع ترین تجزیه کننده PDF خالص پایتون است.
کتابخانه pdfrw شامل پشتیبانی از چندین عملیات مهم PDF مانند ادغام PDF، اصلاح ابرداده، الحاق چندین PDF با یکدیگر، استخراج تصاویر، چاپ PDF، چرخش صفحات PDF، ایجاد یک PDF جدید، افزودن تصویر پی دی اف واترمارک و بسیاری موارد دیگر می باشد.
.
شروع کار با pdfrw
pdfrw به پایتون 2.6، 2.7، 3.3، 3.4، 3.5 و 3.6 نیاز دارد. می توانید pdfrw را با استفاده از pip نصب کنید. لطفا از دستور زیر برای نصب آن استفاده کنید.
pdfrw را از طریق pip نصب کنید
python -m pip install pdfrw
ایجاد اسناد PDF از طریق کتابخانه پایتون
کتابخانه pdfrw به توسعه دهندگان نرم افزار این امکان را می دهد که تنها با چند خط کد، اسناد PDF را در برنامه های پایتون خود ایجاد کنند. این کتابخانه همچنین از دسترسی و اصلاح فایل های PDF موجود پشتیبانی می کند. شما به راحتی می توانید صفحات جدید و همچنین اجزای گرافیکی یا عناصر متنی را در PDF موجود وارد کنید. کتابخانه pdfrw برای یافتن صفحات در فایلهای پیدیافی که در آنها میخوانید و بازنویسی مجموعهای از صفحات به یک فایل PDF جدید پشتیبانی میکند.
ایجاد و تغییر اسناد PDF از طریق پایتون
// PDF Documents Creation
import sys
import os
from pdfrw import PdfReader, PdfWriter
inpfn, = sys.argv[1:]
outfn = 'alter.' + os.path.basename(inpfn)
trailer = PdfReader(inpfn)
trailer.Info.Title = 'My New Title Goes Here'
PdfWriter(outfn, trailer=trailer).write()
خواندن فایل های PDF از طریق پایتون
کتابخانه pdfrw به توسعه دهندگان نرم افزار این امکان را می دهد که به راحتی به بخش های مختلف اسناد PDF در داخل برنامه های پایتون دسترسی داشته باشند و آنها را بخوانند. این امکان دسترسی آسان به کل سند PDF را فراهم می کند. این کتابخانه از بازیابی اطلاعات فایل، اندازه و موارد دیگر پشتیبانی می کند. این یک ویژگی خاص به نام صفحات ایجاد می کند که به کاربران امکان می دهد تمام صفحات یک سند PDF را فهرست کنند. این به شما امکان می دهد یک شی اطلاعات سند را استخراج کنید که می توانید از آن برای بیرون کشیدن اطلاعاتی مانند نویسنده، عنوان و غیره استفاده کنید.
دسترسی و خواندن فایل های PDF از طریق پایتون
// Reading PDF Files
from pdfrw import pdfreader
def get_pdf_info(path):
pdf = pdfreader(path)
print(pdf.keys())
print(pdf.info)
print(pdf.root.keys())
print('pdf has {} pages'.format(len(pdf.pages)))
if __name__ == '__main__':
get_pdf_info('w9.pdf')
افزودن یا اصلاح متادیتا
pdfrw به توسعه دهندگان نرم افزار اجازه می دهد تا ابرداده های فایل های PDF را در برنامه های پایتون خود اضافه یا تغییر دهند. میتوانید یک مورد متادیتا را در یک PDF تغییر دهید، نتیجه را در یک PDF جدید بنویسید و همچنین میتوانید چندین فایل را شامل کنید، و پس از افزودن برخی ابردادههای بیمعنی به فایل PDF خروجی، آنها را به هم متصل کنید.
متادیتا PDF را از طریق پایتون تغییر دهید
// Modifying PDF Metadata
import sys
import os
from pdfrw import PdfReader, PdfWriter
inpfn, = sys.argv[1:]
outfn = 'alter.' + os.path.basename(inpfn)
trailer = PdfReader(inpfn)
trailer.Info.Title = 'My New Title Goes Here'
PdfWriter(outfn, trailer=trailer).write()
تقسیم اسناد PDF
pdfrw به توسعه دهندگان نرم افزار اجازه می دهد تا اسناد PDF را در برنامه های خود به صورت برنامه نویسی تقسیم کنند. ممکن است کاربر به جای ذخیره کردن آنها در یک فایل، نیاز به استخراج بخش خاصی از یک کتاب PDF یا تقسیم آن به چندین PDF داشته باشد. با کتابخانه pdfrw بسیار آسان است، فقط باید یک مسیر فایل PDF ورودی، تعداد صفحاتی که می خواهید استخراج کنید و مسیر خروجی را ارائه دهید.
تقسیم فایل PDF به چندین PDF از طریق پایتون
// Splitting PDF file into multiple pdfs
from pdfrw import pdfreader, pdfwriter
def split(path, number_of_pages, output):
pdf_obj = pdfreader(path)
total_pages = len(pdf_obj.pages)
writer = pdfwriter()
for page in range(number_of_pages):
if page <= total_pages:
writer.addpage(pdf_obj.pages[page])
writer.write(output)
if __name__ == '__main__':
split('reportlab-sample.pdf', 10, 'subset.pdf')