İnfografik
← Ünite 14
Nesne Tabanlı Programlama 2

Ünite 14: Word ve Pdf Dosya Yönetimi

TÜBİTAK 2209-A Çağrı Duyurusu
PDF'den metin çıkarma uygulamalarında örnek olarak kullanılan, 13 sayfadan oluşan resmi bir çağrı duyurusu belgesidir.
Google Colab Kütüphane Kurulumu
Colab ortamında kütüphanelerin sistem komutu olarak kurulması için komutun başına ünlem (!) işareti eklenmesi zorunludur.
Atatürk Üniversitesi Mevzuat Sayfası
PDF birleştirme ve düzenleme uygulamalarında kullanılan örnek yönetmelik belgelerinin temin edildiği resmi web kaynağıdır.
Binary Dosya Yapısı
Word ve PDF dosyaları düz metin (.txt) gibi doğrudan okunamaz, bu yüzden işlenmeleri için özel kütüphanelere ihtiyaç duyulur.

Anahtar Kavramlar

Binary (İkili) DosyaVerilerin 0 ve 1'ler şeklinde kodlanarak saklandığı dosya yapısıdır. Word ve PDF gibi belgeler bu yapıda olduğu için 'rb' veya 'wb' modlarında işlenmelidir.
Document Sınıfıpython-docx kütüphanesinde Word belgesini temsil eden ana sınıftır. Yeni bir belge oluşturmak veya mevcut bir dosyayı açmak için kullanılır.
Paragraf NesnesiWord belgesindeki metinsel yapı birimidir. add_paragraph() metodu ile oluşturulur ve metin içeriğini barındırır.
Run (Metin Parçası)Bir paragraf içindeki metnin biçimlendirilmiş küçük bölümleridir. Kalın, italik veya altı çizili gibi stiller bu nesne üzerinden uygulanır.
add_heading()Word belgesine hiyerarşik başlıklar eklemek için kullanılan metottur. Level parametresi ile başlık seviyesi (0-4) belirlenir.
Sıfır Tabanlı İndekslemeProgramlamada öğelerin sayılmasına 0'dan başlanmasıdır. Örneğin, tabloda ilk hücre (0,0) veya PDF'te ilk sayfa 0. indekstir.
Inches()python-docx kütüphanesinde görsellerin genişliğini inç cinsinden belirlemek için kullanılan yardımcı bir fonksiyondur.
PdfReaderPyPDF2 kütüphanesinde mevcut bir PDF dosyasını okumak ve içeriğine erişmek için kullanılan sınıftır.
PdfWriterPyPDF2 kütüphanesinde yeni PDF dosyaları oluşturmak, sayfaları birleştirmek veya şifrelemek için kullanılan sınıftır.
extract_text()PDF dosyasındaki sayfaların içeriğini metin formatına dönüştüren metottur. Görsel düzeni değil, metin akışını temel alır.
İkili Okuma Modu (rb)PDF veya Word gibi ikili dosya yapısına sahip belgelerin hatasız okunması için kullanılan moddur.
İkili Yazma Modu (wb)Yeni oluşturulan PDF veya Word dosyalarının diske ikili veri olarak kaydedilmesi için kullanılan moddur.
encrypt()PdfWriter nesnesi üzerinden PDF dosyasına parola ekleyerek yetkisiz erişimi engellemeye yarayan metottur.
decrypt()Parola ile korunan bir PDF dosyasının içeriğine erişebilmek için şifresini çözen metottur.

Diğer Önemli Bilgiler

Parola Koruma (Encryption)

PDF şifreleme işlemi orijinal dosyayı değiştirmez; bunun yerine şifreli yeni bir dosya kopyası oluşturur.

Görsel Boyutlandırma

Word belgelerine eklenen görsellerin genişliği, docx.shared modülündeki Inches() fonksiyonu ile inç cinsinden kontrol edilebilir.

Sayfa Sonu Ekleme

Word belgelerinde içeriği yeni bir sayfadan başlatmak için add_page_break() metodu kullanılır.

Dosya Kapatma (with yapısı)

Dosya işlemlerinde with yapısının kullanılması, işlem bittiğinde dosyanın otomatik olarak kapatılmasını sağlayarak kaynak yönetimini optimize eder.

Şifre Çözme (Decryption)

Şifreli bir PDF'in içeriğine erişmek için önce is_encrypted ile kontrol yapılmalı, ardından decrypt() ile parola girilmelidir.

Sınavda Dikkat Et

  • Word belgelerinde biçimlendirme (kalın, italik vb.) paragraf düzeyinde değil, mutlaka 'run' nesneleri üzerinden yapılır; buna dikkat edin.
  • İkili (binary) dosya işlemlerinde 'r' ve 'w' modları yerine mutlaka 'rb' ve 'wb' modlarını kullanın, aksi halde dosya bozulur.
  • PDF sayfa indekslerinin 0'dan başladığını unutmayın; 1. sayfa için indeks 0, 2. sayfa için 1 kullanılır.
  • Google Colab'da kütüphane kurarken başına ünlem (!) işareti koymayı unutmayın, aksi halde hata alırsınız.
  • PDF şifreleme işleminin mevcut dosyayı değiştirmediğini, parola korumalı yeni bir dosya ürettiğini aklınızda tutun.
  • Tablo hücrelerine erişirken satır ve sütun indekslerinin 0'dan başladığını ve bu sıfır tabanlı yapının tüm kütüphaneler için geçerli olduğunu hatırlayın.