CodeGym /Kurslar /Python SELF AZ /Python-da PDF ilə işləmək üçün digər kitabxanalar

Python-da PDF ilə işləmək üçün digər kitabxanalar

Python SELF AZ
Səviyyə , Dərs
Mövcuddur

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ı

Python

pip install pdfplumber

PDFPlumber ilə cədvəllərin çıxarılması

Python

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ı

Python

pip install reportlab

Sadə bir PDF sənədinin yaradılması

Python

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ı

Python

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.

Python

import PyPDF2

Sadə bir nümunə kimi, gəlin bir PDF-sənədi açmağa cəhd edək və onu oxuyaq.

Python

# 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."

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION