CodeGym /Kurslar /Python SELF AZ /Hesabatların yaradılması üçün PDF-faylların yaradılması v...

Hesabatların yaradılması üçün PDF-faylların yaradılması və strukturlanması

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

1. Hesabatlar üçün PDF-sənədlərin strukturu

Gəlin PDF-faylların saxlanmasını və strukturlaşdırılmasını öyrənməyə başlayaq, belə ki, sizin hesabatlarınız peşəkar dizayner tərəfindən yaradılmış kimi görünəcək.

Gəlin əsaslardan başlayaq. Bildiyiniz kimi, yaxşı hesabatlar təkcə faydalı məlumatlara malik olmamalı, həmçinin qavranılması asan olmalıdır. Bu, onların düzgün struktura ehtiyacı olduğunu bildirir. Gəlin hesabatlarınızın həm məzmunlu, həm də estetik baxımdan gözəl olması üçün nə etməli olduğumuzu izah edək.

PDF-i düzgün təşkil etmək və strukturlaşdırmaq

Sənədin strukturu kod blokunun planına bənzəyir, amma mətn dünyasında. Yaxşı struktur özündə aşağıdakını ehtiva edir:

  • Mündəricat: Sənəddə nələrin olduğunu və onları harada tapmaq lazım olduğunu anlamağa kömək edir. Əgər sizin böyük hesabatınız varsa, mündəricat sizin ən yaxşı dostunuzdur.
  • Bölmələr və Altbölmələr: Məlumatın məntiqi ardıcıllığı oxucunun müəllifin düşüncələrini izləməsinə kömək edir. Həyatda olduğu kimi: əvvəlcə başlanğıc, sonra kulminasiya və sonda nəticə.
  • Vizual elementlər: Cədvəllər, qrafiklər və şəkillər bəzən bir səhifəlik mətnin dediyindən daha çoxunu deyə bilər.

Rahat naviqasiya üçün mündəricat və bölmələrin yaradılması

Müntəricatlar və bölmələrin yaradılması hesabatınızın böyük bir mətn yığınına çevrilməsinin qarşısını alır. Məlumatı məntiqi bloklara ayırın və başlıqları unutmayın.

Python

from PyPDF2 import PdfWriter, PdfReader

# Yeni PDF-sənəd yaradırıq
writer = PdfWriter()

# Boş səhifə əlavə edirik
writer.add_blank_page(width=210, height=297)  # Standart A4 formatı

# PDF-i fayla yazırıq
with open("report.pdf", "wb") as f:
    writer.write(f)

2. Hesabatların PDF formatında yaradılması

İndi, hesabatı necə strukturlaşdırmaq lazım olduğunu bildiyimiz zaman, onun yaradılmasına keçməyin zamanı gəldi. PyPDF2 — bu çətin işdə sizin dostunuzdur.

PyPDF2 istifadə edərək məlumatlardan hesabatların yaradılması

Məlumatlardan hesabatların yaradılması — sadəcə kopyalamaq və yapışdırmaq deyil. Sənədləriniz sizin pişiyiniz kimi "canlı" olmalıdır, işləmağa çalışdığınız vaxt sizi narahat edən. PyPDF2 sizə məlumatları çıxarmağa, sənədə əlavə etməyə və hətta onların görünüşünü fərdiləşdirməyə kömək edir.

Python

import PyPDF2

# Mövcud olan PDF faylını açırıq
with open('source.pdf', 'rb') as read_file:
    reader = PdfReader(read_file)
    writer = PdfWriter()

    # Səhifələri yeni fayla kopyalayırıq
    for page in reader.pages:
        writer.add_page(page)

    # Başlıq əlavə edirik
    writer.add_blank_page()
    page = writer.pages[-1]
    page.content = """Salam! Bu mənim hesabatımdır!""" # Səhv!!
    
    # Yeni fayla yazırıq
    with open('structured_report.pdf', 'wb') as write_file:
        writer.write(write_file)

Təəssüf ki, bu kod işləməyəcək. PyPDF2 səhifənin məzmunu ilə işləməyi dəstəkləmir, hətta sadə bir mətn əlavə etmək belə mümkün deyil. Əgər mövcud bir PDF-ə mətn əlavə etmək lazımdırsa, `ReportLab` istifadə edə bilərsiniz.

3. `ReportLab` istifadəsi

Bu düzəliş edilmiş nümunədə PyPDF2 ilə PDF yaradacağıq və mətn əlavə etmək üçün `ReportLab` istifadə edəcəyik. Sonra nəticəni bir PDF-də birləşdirəcəyik.

Mətni əlavə etmək üçün `ReportLab` istifadə edərək düzəliş edilmiş kod

Python

import PyPDF2
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4

# ReportLab vasitəsilə başlıq ilə fayl yaradırıq
title_pdf = "title_page.pdf"
c = canvas.Canvas(title_pdf, pagesize=A4)
c.drawString(100, 800, "Salam! Bu mənim hesabatımdır!")
c.save()

# Birləşdirilmiş PDF yaradırıq
with open("source.pdf", "rb") as source_file, open(title_pdf, "rb") as title_file:
    reader_source = PyPDF2.PdfReader(source_file)
    reader_title = PyPDF2.PdfReader(title_file)
    writer = PyPDF2.PdfWriter()

    # Başlıq səhifəsini əlavə edirik
    writer.add_page(reader_title.pages[0])

    # Mənbə fayldan səhifələri kopyalayırıq
    for page in reader_source.pages:
        writer.add_page(page)

    # Yeni başlıq olan PDF faylı saxlayırıq
    with open("structured_report.pdf", "wb") as output_file:
        writer.write(output_file)

print("Hesabat uğurla yaradıldı və 'structured_report.pdf' kimi saxlanıldı.")

Düzəlişlərin izahı:

  1. Başlıq səhifəsinin yaradılması: "Salam! Bu mənim hesabatımdır!" mətnini ehtiva edən bir PDF faylı yaratmaq üçün `ReportLab` istifadə edirik.
  2. PDF birləşdirilməsi: `PyPDF2` vasitəsilə başlıq səhifəsini və `source.pdf`-dən qalan səhifələri əlavə edirik.
  3. Son faylın saxlanması: Birləşdirilmiş PDF faylını `structured_report.pdf` kimi saxlayırıq.

Daha yaxşı strukturlaşdırma üçün başlıqlar və bölmələr əlavə edilməsi

İndi biz artıq sənədin əsasına sahibik, bir az struktur əlavə edək. Başlıqlar və alt başlıqlar məlumat meşəsində yolunuzu itirməməyə kömək edəcəkdir. PyPDF2 səhifələri daxil etməyə imkan verir, lakin əgər fonts tənzimləməsi kimi daha mürəkkəb şeylərə ehtiyacınız varsa, `ReportLab` kitabxanasına nəzər salmaq lazımdır.

Python

from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas

def create_pdf(filename):
    # PDF canvas yaradırıq
    c = canvas.Canvas(filename, pagesize=letter)
    text = c.beginText(40, 750)

    # Başlıq
    text.setFont("Helvetica-Bold", 18)
    text.textLine("Layihə üzrə hesabat 'SuperGizli'")

    # Alt başlıq
    text.setFont("Helvetica", 14)
    text.textLine("Fəsillər:")
    text.textLine("1. Giriş")
    text.textLine("2. Məlumatların analizi")
    text.textLine("3. Nəticə")

    c.drawText(text)
    c.save()

create_pdf("detailed_report.pdf")

Xətalar və çətinliklər

Hər hansı bir proqramlaşdırmada olduğu kimi, PDF sənədlərinin işlənməsində də öz çətinlikləri var. Əsas problemlərdən biri səhifə indekslərinin düzgün istifadəsidir. PyPDF2-də, eləcə də ümumiyyətlə Python-da, səhifə nömrələməsi sıfırdan başlayır. Dəqiq olun ki, təsadüfən hesabatınıza səhv səhifələr əlavə etməyəsiniz.

Problem yarada biləcək digər bir məsələ isə mətnlərin düzgün kodlaşdırılmamasıdır. PDF sənədlər fərqli formatlarda kodlaşdırılmış mətnlər saxlaya bilər. Kodunuzun simvolları düzgün işləyə biləcəyinə əmin olun, xüsusilə də hesabatınız bir neçə dildə olacaqsa.

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