CodeGym /Kurslar /Python SELF AZ /Bbir neçə PDF sənədini bir sənədə birləşdirmək

Bbir neçə PDF sənədini bir sənədə birləşdirmək

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

1. PyPDF2 ilə PDF birləşdirmək

Niyə PDF fayllarını birləşdirək

Əvvəlcə gəlin baxaq, ümumiyyətlə niyə PDF fayllarını birləşdirməyimiz zərurət yaranır. Axı deyirlər ki, "Bir PDF, on dənə PDF-dən yaxşıdır!". İş mühitində sizdə hesabatlar, tədqiqat nəticələri, texniki sənədlər və ya təqdimatlar ola bilər ki, bunlar ayrı-ayrı fayllar şəklində təqdim olunur. Onların arasında daim keçid etmək yalnızca rahat deyil, həm də təhlükəlidir - nəyisə görməzdən gəlmək mümkündür. Bütün faylları bir sənəddə birləşdirərək məlumatlarla işləməyi sadələşdirəcəksiniz və onların analizi və yayılması üçün daha strukturlaşdırılmış yanaşma yaradacaqsınız.

Üstəlik, PDF fayllarını birləşdirmək sonrakı arxivləşdirmə, yekun hesabat yaratma və ya dəyişiklikləri izləmək üçün bir çox versiyanı birləşdirmək üçün rahatdır. Ümumiyyətlə, imkanlar çox genişdir!

PDF-ləri birləşdirmək üçün PyPDF2 istifadə etmənin əsas prinsipləri

Əvvəlcə gəlin PyPDF2 ilə işləmənin əsaslarından başlayaq. Bir neçə PDF faylını birləşdirəcək bir skript yaradacağıq. Təbii ki, hər addımda baş verənləri başa düşməniz üçün kodda şərhlər olacaq.

Python

import PyPDF2

# PyPDF2 kitabxanasından PdfMerger obyektini yaradırıq
pdf_merger = PyPDF2.PdfMerger()

# Birləşdirmək istədiyimiz PDF sənədlərin siyahısı
pdf_files = ['document1.pdf', 'document2.pdf', 'document3.pdf']

# Hər bir faylı PdfMerger obyektinə əlavə etmək üçün dövr
for file in pdf_files:
    pdf_merger.append(file)

# Nəticəni yeni PDF faylına yadda saxlayırıq
output_filename = 'merged_document.pdf'
with open(output_filename, 'wb') as output_file:
    pdf_merger.write(output_file)

# Resursları azad etmək üçün PdfMerger obyektini bağlayırıq
pdf_merger.close()

print(f"Birleşdirilmiş PDF yaradılıb: {output_filename}")

Birləşdirilmiş sənədin ardıcıllığı və strukturu

İndi ki, PDF sənədlərini birləşdirməyi öyrəndik, səhifələrin sırasını düşünmək lazım olacaq. Unutmayın ki, PyPDF2, faylları .append() metoduna ötürdüyünüz ardıcıl qaydada əlavə edir. Beləliklə, siyahıdakı pdf_files-in ardıcıllığı, yekun sənəddəki səhifələrin ardıcıllığına təsir göstərir.

2. Ayrı-ayrı səhifələri birləşdirmək

Əgər sənədləri birləşdirmək istəmirsinizsə, lakin onların hissələrindən son sənəd yaratmaq istəyirsinizsə, onda PdfMerger əvəzinə PdfWriter sinifindən istifadə etməlisiniz. Nümunə:

Python

import PyPDF2

# Birləşdirilməsi lazım olan PDF sənədlərinin siyahısı
pdf_files = ["file1.pdf", "file2.pdf", "file3.pdf"]

# Birləşdirilmiş PDF yazmaq üçün PdfWriter obyektin yaradılması
pdf_writer = PyPDF2.PdfWriter()

# Hər bir PDF sənədinə keçirik
for pdf_file in pdf_files:
    with open(pdf_file, "rb") as file:
        pdf_reader = PyPDF2.PdfReader(file)
        # Hər bir səhifəni PdfWriter-ə əlavə edirik
        for page_num in range(len(pdf_reader.pages)):
            # Burada əlavə etmək istəmədiyiniz səhifələri atlaya bilərsiniz
            page = pdf_reader.pages[page_num]
            pdf_writer.add_page(page)

# Birləşdirilmiş PDF-i saxlamaq
with open("merged_document.pdf", "wb") as output_file:
    pdf_writer.write(output_file)

Bu kod necə işləyir?

  1. Fayl siyahısı yaradılır: pdf_files siyahısı birləşdirilməsi lazım olan PDF sənədlərinin yollarını ehtiva edir.
  2. PdfWriter-i işə salırıq: pdf_writer yeni PDF sənəd yaratmaq üçün istifadə olunur.
  3. Hər fayldan keçirik: Hər PDF sənəd oxuma rejimində açılır.
  4. Səhifələr əlavə olunur: Fayldakı hər bir səhifə ardıcıllıqla pdf_writer obyektinə add_page() vasitəsilə əlavə olunur.
  5. Nəticəni saxlayırıq: Bütün səhifələr əlavə edildikdən sonra yeni PDF faylı merged_document.pdf olaraq yazılır.

3. Yeni sənədin stilləşdirilməsi

Bookmark-lərin və məzmun səhifəsinin əlavə edilməsi

Sənin birləşdirilmiş sənədin çox böyükdürsə və naviqasiya etmək çətindirsə, nə etməli? Belə vəziyyətdə bookmark-lər köməyə gəlir! PyPDF2 sənəddə naviqasiyanı asanlaşdıracaq sadə bookmark-lər əlavə etməyə imkan verir. Gəlin birləşdirdiyimiz hər bir sənədə bookmark əlavə edək.

Python

pdf_merger = PyPDF2.PdfMerger()

# Bookmark-lər üçün səhifə indeksi
page_offset = 0

for file in pdf_files:
    # Cari sənədi oxuyuruq
    pdf_reader = PyPDF2.PdfReader(file)

    # Sənədi PdfMerger-ə əlavə edirik
    pdf_merger.append(file)

    # Fayl adı ilə bookmark əlavə edirik
    pdf_merger.add_bookmark(file, page_offset)

    # Səhifə ofsetini yeniləyirik
    page_offset += len(pdf_reader.pages)

with open(output_filename, 'wb') as output_file:
    pdf_merger.write(output_file)

pdf_merger.close()

Bu kiçik fənd sənə PDF-dən ibarət okeanda itməkdən xilas olmağa kömək edəcək.

Birləşdirilmiş faylın metadata-larını yeniləmək

Birləşdirmədən sonra sənədin müəllifi, adı və açar sözləri kimi metadata-ları əlavə edə və ya dəyişə bilərsən.

Python

import PyPDF2

pdf_files = ["file1.pdf", "file2.pdf"]
pdf_writer = PyPDF2.PdfWriter()

for pdf_file in pdf_files:
    with open(pdf_file, "rb") as file:
        pdf_reader = PyPDF2.PdfReader(file)
        for page_num in range(len(pdf_reader.pages)):
            page = pdf_reader.pages[page_num]
            pdf_writer.add_page(page)

# Metadata əlavə edirik
pdf_writer.add_metadata({
    "/Title": "Birləşdirilmiş sənəd",
    "/Author": "İvan İvanov",
    "/Subject": "Satış üzrə hesabat"
})

# Birləşdirilmiş faylı saxlayırıq
with open("merged_with_metadata.pdf", "wb") as output_file:
    pdf_writer.write(output_file)

Bu kod sənədi identifikasiya və strukturlaşdırmaq üçün metadata əlavə edir.

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