Python ile PDF işlemlerini otomatikleştirme: metin çıkarmadan rapor üretmeye
Beceri rehberi

Python ile PDF işlemlerini otomatikleştirme: metin çıkarmadan rapor üretmeye

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 5 dk okuma

Python ile PDF dosyalarından metin ve tablo çıkarmayı, birleştirmeyi, bölmeyi ve rapor üretmeyi; araç seçimi ve sık hatalarla birlikte öğrenin.

PDF otomasyonu hangi işleri kapsar?

PDF, yazdırma ve paylaşma için tasarlanmış bir biçimdir; veri saklamak için değil. Bu yüzden içindeki bilgiyi program yoluyla almak, bir Excel dosyasından veri okumaktan zordur. Buna rağmen faturalar, ekstreler, sözleşmeler, tutanaklar ve raporlar PDF olarak dolaştığı için otomasyon ihtiyacı yaygındır.

Python ile yapılan tipik işler şunlardır: bir klasördeki yüzlerce faturadan numara, tarih ve tutar çıkarmak; birden çok PDF'i tek dosyada birleştirmek ya da büyük bir dosyayı bölmek; sayfaları döndürmek; filigran ya da damga eklemek; şifre koymak ya da kaldırmak; verilerden yeni bir PDF raporu üretmek ve taranmış belgeleri okunabilir metne çevirmek.

Önce PDF'in türünü anlayın

Doğru araç, PDF'in içeriğine bağlıdır. Metin tabanlı PDF'te yazı gerçekten metin olarak saklanır; programla seçilip kopyalanabilir. Taranmış PDF ise aslında sayfa görüntüsüdür ve içinde seçilebilir metin yoktur. Bir PDF'ten metin çıkarmayı denediğinizde boş sonuç alıyorsanız büyük olasılıkla taranmış belgeyle karşı karşıyasınızdır.

Bu ayrım iş akışını belirler: metin tabanlı belgede doğrudan metin çıkarma kütüphaneleri kullanılır; taranmış belgede önce görüntü işlenir ve optik karakter tanıma (OCR) çalıştırılır. Karma belgeler de vardır; bazı sayfalar metin, bazı sayfalar görüntü olabilir. Betiğin her sayfayı kontrol edip uygun yola yönlendirmesi sağlam bir tasarımdır.

Kullanılan kütüphaneler ve rolleri

Python'da PDF için tek bir araç yoktur; işe göre seçilir:

  • pypdf: sayfa birleştirme, bölme, döndürme, metadata okuma ve şifreleme gibi sayfa düzeyindeki işlemler için uygundur; temel metin çıkarma da yapabilir.
  • pdfplumber: metin ve tabloları sayfadaki konumlarıyla birlikte okumak için güçlüdür; kenarlıklı tablolarda iyi sonuç verir.
  • PyMuPDF: hızlı metin çıkarma, görüntü çıkarma ve sayfayı görüntüye çevirme için kullanılır.
  • reportlab: sıfırdan PDF üretmek, yani kod ile fatura, sertifika ya da rapor oluşturmak için kullanılır.
  • OCR için pytesseract gibi bir sarmalayıcı ve ayrı kurulan bir OCR motoru: taranmış sayfaların metne çevrilmesinde kullanılır.

Her kütüphanenin lisansı ve kurulum koşulu farklıdır; kurumsal kullanımda lisans şartları gözden geçirilmelidir.

Adım adım örnek: faturalardan veri çıkarıp tabloya dökmek

Örneğin muhasebe, tedarikçilerden gelen faturaları klasörde topluyor ve her birinden fatura numarasını, tarihi ve tutarı Excel'e aktarmak istiyor. Akış şöyle kurulur:

  • Dosyaları listeleyin ve işlenmiş olanları ayrı bir klasöre taşıyarak tekrarı önleyin.
  • Her PDF'i açın ve metin çıkarın; boş dönenleri OCR kuyruğuna ayırın.
  • Aranan alanları kurallarla bulun: etiketin yanındaki değeri yakalayan düzenli ifadeler ya da tablo hücresi okuma kullanılır.
  • Değerleri normalleştirin: tarih biçimini tek tipe çevirin, tutardaki binlik ve ondalık ayırıcıları düzeltin.
  • Doğrulayın: fatura numarası ve tutar bulunamadıysa kaydı hatalı listesine alın, tahmin yürütmeyin.
  • Tabloya yazın: sonuçları bir veri tablosunda toplayın ve Excel ya da veritabanına aktarın.

Hatalı listesi, insanın gözden geçirdiği küçük bir kuyruktur ve süreci güvenilir kılan asıl parçadır.

Tablolar ve karmaşık düzenler

PDF'teki tablolar çoğu zaman en zorlu kısımdır, çünkü PDF'in içinde gerçek bir tablo nesnesi yoktur; yalnızca konumlandırılmış metin ve çizgiler vardır. pdfplumber gibi araçlar, çizgilere ve boşluklara bakarak satır ve sütunları tahmin eder. Kenarlıksız tablolarda tahmin ayarlarını kâğıda göre ince ayar yapmak gerekir.

Çok sayfalı tablolarda başlık satırı her sayfada tekrar edebilir; bunu birleştirmeden önce temizlemek gerekir. Bir tedarikçi şablonunu değiştirdiğinde kurallar bozulur, bu yüzden her tedarikçi için ayrı çıkarma kuralı tutmak ve değişiklikleri hata listesinden fark etmek yaygın bir yöntemdir. Çok çeşitli düzenlerle uğraşılıyorsa, kural tabanlı yaklaşıma ek olarak yapay zeka destekli belge okuma çözümleri de değerlendirilir; bu durumda çıktı doğrulaması yine zorunludur.

Sık yapılan hatalar

İlk hata, tüm PDF'lerin metin tabanlı olduğunu varsaymaktır; taranmış belge geldiğinde betik sessizce boş veri üretir. Betik, çıkardığı metnin uzunluğunu kontrol etmeli ve boşsa uyarı vermelidir.

İkinci hata, karakter kodlaması sorunlarını görmezden gelmektir: Türkçe karakterler bazı PDF'lerde bozuk çıkabilir, yazı tipi gömülü değilse harfler yanlış eşleşebilir. Çıkan metni birkaç belgede gözle kontrol etmek şarttır. Üçüncü hata, orijinal dosyaların üzerine yazmaktır; birleştirme, bölme ve döndürme işlemleri yeni dosya olarak kaydedilmeli, orijinal saklanmalıdır. Son olarak, kişisel veri içeren belgelerde (kimlik, sağlık, maaş) çıkarılan verinin nerede saklandığı ve kimin eriştiği baştan düşünülmelidir.

PDF üretmek: kod ile rapor, sertifika, fatura

Otomasyon yalnızca okumak değildir. Aynı kütüphaneler, verilerden belge üretmek için kullanılır: müşteri adı ve tutar gibi alanları bir şablona yerleştirerek toplu fatura ya da katılım belgesi oluşturmak yaygın bir uygulamadır. Yaygın yöntemlerden biri, önce HTML şablonu hazırlayıp bunu PDF'e çeviren bir araç kullanmaktır; tasarım web diliyle yapıldığı için biçimlendirme daha kolaydır.

Üretilen belgelerde yazı tipinin Türkçe karakterleri desteklediğinden emin olun, dosya adını anlamlı bir kurala bağlayın ve oluşan her belgenin kaydını (kime, ne zaman) tutun. Dosyaların e-postayla toplu gönderilmesi gerekiyorsa gönderim adımı ayrı bir aşama olarak, önce küçük bir test grubuyla denenmelidir.

Bu beceriyi Mindset programlarında nerede çalışırsınız?

Python ile Robotic Process Automation (RPA) Eğitimi programının modül başlıkları arasında PDF Otomasyonu doğrudan yer alır. Aynı programda Python temelleri, orta seviye Python, belge otomasyonu (Excel, Word vb.), veritabanı otomasyonu, CSV ve JSON otomasyonu, web kazıma, otomatik e-postalar ve GUI otomasyonu da bulunur.

Bu bütünlük, PDF'ten çıkarılan verinin sonraki adımlarda nereye gideceğini de ele almayı mümkün kılar. Fatura işleme, evrak kontrolü ve raporlama gibi belge yoğun işleri olan muhasebe, insan kaynakları ve operasyon ekipleri için uygun bir çalışma alanıdır.

İlgili Mindset programı

Python ile Robotic Process Automation ( RPA ) Eğitimi

Sık sorulanlar

Sık sorulan sorular

Taranmış PDF'ten Python ile metin çıkarılabilir mi?

Çıkarılabilir, ancak doğrudan değil. Taranmış sayfa bir görüntü olduğu için önce optik karakter tanıma (OCR) uygulanır. Sonuç, tarama kalitesine ve yazı tipine bağlıdır; Türkçe karakterlerde hata olasılığı yüksektir. Bu yüzden çıkarılan değerleri doğrulayan bir kontrol adımı eklemek gerekir.

Birden fazla PDF'i Python ile nasıl birleştiririm?

pypdf gibi bir kütüphane ile klasördeki dosyalar sıralanır, sayfalar tek bir yazıcı nesnesine eklenir ve yeni dosya olarak kaydedilir. Sıralamayı dosya adı ya da tarih kuralına bağlayın ve orijinalleri değiştirmeyin. Yer imleri ya da sayfa numaraları gerekiyorsa bunlar ayrıca ele alınır.

PDF'teki tabloyu Excel'e aktarmak mümkün mü?

Mümkündür. pdfplumber gibi araçlar tablo satır ve sütunlarını tahmin ederek bir veri tablosuna dönüştürür, sonra pandas ile Excel'e yazılır. Kenarlıklı ve düzenli tablolarda başarı yüksektir; kenarlıksız ya da çok sayfalı tablolarda ayar ve elle kontrol gerekebilir.

PDF otomasyonu için hangi kütüphaneyi seçmeliyim?

İşe göre seçin: sayfa birleştirme, bölme ve döndürme için pypdf; tablo ve konuma dayalı okuma için pdfplumber; hızlı metin ve görüntü çıkarma için PyMuPDF; sıfırdan belge üretmek için reportlab. Gerçek projelerde genellikle birden fazla kütüphane birlikte kullanılır.

Şifreli PDF'ler otomasyona dahil edilebilir mi?

Parolayı bildiğiniz belgeler açılabilir. Parolayı güvenli bir yapılandırma alanında saklamak gerekir, kodun içine yazılmaz. Sahibi olmadığınız ya da yetkiniz bulunmayan belgelerin korumasını aşmaya çalışmak hukuki ve etik sorun doğurur; otomasyon yalnızca yetkili olduğunuz belgelerde kullanılmalıdır.

Python ile PDF Otomasyonu: Okuma, Birleştirme, Veri Çıkarma