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.
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ə:
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?
- 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. - PdfWriter-i işə salırıq:
pdf_writer
yeni PDF sənəd yaratmaq üçün istifadə olunur. - Hər fayldan keçirik: Hər PDF sənəd oxuma rejimində açılır.
- 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. - 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.
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.
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.
GO TO FULL VERSION