1. PDFPlumber ilə tanışlıq
PDFPlumber ilə cədvəllərin və mürəkkəb strukturların çıxarılması
PDFPlumber PDF-dən məlumatların çıxarılması üçün ideal vasitədir, xüsusilə də cədvəllər və sütunlar kimi mürəkkəb strukturlar üçün. O, PyPDF2 ilə çıxarılması çətin olan məlumatları aşkar etmək və çıxarmaq imkanı verir.
PDFPlumber-in quraşdırılması
pip install pdfplumber
PDFPlumber ilə cədvəllərin çıxarılması
import pdfplumber
with pdfplumber.open("sample_with_table.pdf") as pdf:
for page in pdf.pages:
table = page.extract_table()
if table:
for row in table:
print(row)
Bu kod hər bir PDF səhifəsindən cədvəli çıxarır ki, bu da maliyyə və analitik hesabatların işlənməsi üçün faydalıdır, burada əsas məlumatlar cədvəllərdə təqdim olunur.
2. ReportLab ilə Tanışlıq
ReportLab ilə PDF hesabatlarının yaradılması
Əgər sən PDF-i sıfırdan yaratmaq istəyirsənsə, məsələn, hesabatlar və ya avtomatlaşdırılmış sənədlər üçün, ReportLab kitabxanası mətn, cədvəllər, şəkillər və qrafiklər ilə PDF qurmaq üçün çevik imkanlar təqdim edir.
ReportLab-in quraşdırılması
pip install reportlab
Sadə bir PDF sənədinin yaradılması
from reportlab.lib.pagesizes import A4
from reportlab.pdfgen import canvas
# PDF-in yaradılması
pdf_file = canvas.Canvas("generated_report.pdf", pagesize=A4)
width, height = A4
# Başlıq əlavə edilməsi
pdf_file.setFont("Helvetica-Bold", 16)
pdf_file.drawString(100, height - 100, "Satış hesabatı")
# Mətn əlavə edilməsi
pdf_file.setFont("Helvetica", 12)
pdf_file.drawString(100, height - 130, "Bu hesabat keçən ayın satış məlumatlarını ehtiva edir.")
# PDF-in saxlanması
pdf_file.showPage()
pdf_file.save()
Bu kod başlıq və mətn ilə PDF yaradır. O, eyni zamanda logolar, şəkillər və digər tərtibat elementləri əlavə etməyə də imkan verir.
ReportLab ilə PDF-də Cədvəlin Yaradılması
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle
# Cədvəl üçün məlumatlar
data = [
["Ay", "Satışlar"],
["Yanvar", "200"],
["Fevral", "300"],
["Mart", "250"]
]
# Cədvəlli PDF-in yaradılması
pdf_file = SimpleDocTemplate("sales_report.pdf", pagesize=A4)
table = Table(data)
table.setStyle(TableStyle([
('BACKGROUND', (0, 0), (-1, 0), colors.grey),
('TEXTCOLOR', (0, 0), (-1, 0), colors.whitesmoke),
('ALIGN', (0, 0), (-1, -1), 'CENTER'),
('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'),
('BOTTOMPADDING', (0, 0), (-1, 0), 12),
('BACKGROUND', (0, 1), (-1, -1), colors.beige),
]))
# PDF-in qurulması
elements = [table]
pdf_file.build(elements)
Bu kod cədvəl yaradır və onu PDF kimi saxlayır. ReportLab vasitəsilə həmçinin stillər əlavə etmək, rəngləri dəyişmək, şrift ölçülərini tənzimləmək və mətn formatlaşdırmaq mümkündür.
3. Yenidən PyPDF2-yə qayıdırıq
Niyə məhz PyPDF2?
Bildiyiniz kimi, PDF-sənədləri, demək olar ki, hər növ sənədlər, hesabatlardan tutmuş ağ kağıza qədər standartdır. Amma iş avtomatlaşdırmaya gəldikdə, Python-dan PDF-lərlə işləmək əsl baş ağrısı ola bilər. PyPDF2 bu problemdən çıxmağa kömək edir: mətn çıxarmaq, səhifələri birləşdirmək və yaxud bölmək, həmçinin daha çoxunu etməyə imkan yaradır. Və bunu etməklə həzz alırsan. Ümumiyyətlə, bu, kod yazan üçün yaxşı səhər qəhvəsi kimidir, sadəcə o həyəcanlandırmır, əksinə sakitləşdirir!
Gəlin, PyPDF2-nin təklif etdiyi əsas funksionallığı bir az nəzərdən keçirək. Bu sizi daha çətin tapşırıqlara hazır edəcək, çünki tədricən başlamadan asanlıqla qarışıqlıq yarana bilər.
İdxal və əsas nümunə
İlk işimiz kitabxananı idxal etməkdir. Köhnə yaxşı `import this` kimi, amma burada xüsusi tapşırıqlar yerinə yetirəcək.
import PyPDF2
Sadə bir nümunə kimi, gəlin bir PDF-sənədi açmağa cəhd edək və onu oxuyaq.
# Faylı oxumaq üçün binary rejimdə açırıq
with open('example.pdf', 'rb') as pdf_file:
# PDFReader obyekti yaradırıq
pdf_reader = PyPDF2.PdfReader(pdf_file)
# Birinci səhifədən mətn çıxarırıq
page = pdf_reader.pages[0]
text = page.extract_text()
print(text)
Bu kod başlanğıc üçün lazım olan hər şeyi edir: PDF-sənədini açır, birinci səhifədən mətn çıxarır və onu çıxışa yazır. Sadə və effektiv.
PyPDF2-nin funksionallığının icmalı
PyPDF2 PDF-lə işləmək üçün bir çox funksiyanı təmin edir:
- Mətn çıxarılması: artıq baxdıq.
- PDF-lərin birləşdirilməsi: mövcud olan bir neçə sənədi birləşdirərək yeni PDF yaradırıq.
- Səhifələrin bölünməsi: lazım olan səhifələri seçib ayrı fayllara qeyd edirik.
- Şərhlər və annotasiyaların əlavə edilməsi: artıq bu, tamamilə high-level!
Bu mərhələdə PyPDF2-nin necə işlədiyi və hansı imkanlar təqdim etdiyi haqqında ümumi təsəvvürə malik olmalı idiniz. Əlbəttə ki, bir dərslə hər şeyi mənimsəmək qeyri-mümkündür, amma biz tədricən bu kitabxananın nələr təklif edə biləcəyini öyrənəcəyik.
Geri dönüş və tipik səhvlər
Çox vaxt kod dərhal işləmir və hər bir öyrənmə prosesi "səhvi tapmaq üçün ov" halına çevrilir. PyPDF2 istifadə zamanı ən çox rastlanan səhv — fayl yolunun düzgün göstərilməməsidir. PDF sənədinizin skriptinizlə eyni direktoriya içində olduğuna əmin olun və ya tam yolu göstərin. Bundan əlavə, faylları binar rejimdə ('rb'
) açmağı unutmayın, çünki bu, kodlama ilə bağlı problemlərin qarşısını almağa kömək edir. Bir müdrik proqramçı demişdi: "Səhvlər kodunuzdakı problemlər deyil, sadəcə gözlənilməz xüsusiyyətlərdir."
GO TO FULL VERSION