30 puan yazan GN⁺ 2025-10-14 | 2 yorum | WhatsApp'ta paylaş
  • py-pdf ekibinin geliştirdiği, PDF dosyalarını işlemek için kullanılan Python tabanlı açık kaynak bir CLI aracı
  • Meta verileri görüntüleme, sayfa çıkarma ve birleştirme, sayfa silme, görüntüleri PDF'ye dönüştürme, belge sıkıştırma, kitapçık oluşturma gibi çeşitli PDF düzenleme işlevleri sunar
  • PDF'den görüntü ve açıklama metni çıkarma ya da elle düzenleme sırasında bozulan PDF'lerin xref onarımı gibi gelişmiş özellikleri de destekler
  • Yakın zamanda yayımlanan 0.5.0 sürümünde PDF belgesi imzalama ve doğrulama, yalnızca açıklama eklenmiş sayfaları çıkarma, belirli sayfaları döndürme gibi yeni özellikler eklendi

Açık kaynak PDF CLI aracı pdfly

  • pdfly, py-pdf organizasyonunun en yeni projelerinden biri olan, Python ortamında çalışan bir PDF dosyası işleme komut satırı aracı
  • fpdf2 ve pypdf kütüphaneleri üzerine geliştirilmiştir; kurulumu ve kullanımı kolaydır, bu yüzden farklı platformlarda rahatça kullanılabilir
  • pdfly'nin en büyük gücü, rakip açık kaynak projelere kıyasla geniş özellik desteği sunması ve yeni başlayan geliştiricilerin bile kolayca kullanabileceği sezgisel bir arayüze sahip olmasıdır
  • Diğer projelerle karşılaştırıldığında, PDF ile ilgili işlerin büyük kısmını tek bir araçla kolayca halledebildiği için oldukça verimlidir

Başlıca özellikler

  • Meta verileri görüntüleme

    • pdfly meta ve pdfly pagemeta komutlarıyla PDF meta verilerini görüntüleme desteği sağlar
    • Dosya adı, izinler, boyut, oluşturma/değiştirme/erişim zamanı gibi işletim sistemi verilerini sunar
    • PDF sürümü, sayfa sayısı, şifreleme durumu, yazı tipi bilgileri, ek dosyalar, görüntü sayısı gibi PDF iç verilerini gösterir
  • Belge birleştirme ve düzenleme

    • pdfly cat: belirli sayfaları çıkarma ve belge birleştirme işlevi
    • pdfly rm: seçmeli sayfa silme işlevi
    • pdfly x2pdf: görüntüleri PDF belgesine dönüştürme
    • pdfly compress: belge sıkıştırma işlevi
    • pdfly 2-up ve pdfly booklet: kitapçık oluşturma işlevi
  • İçerik çıkarma

    • pdfly extract-images: PDF'den görüntü çıkarma
    • pdfly extract-annotated-text: açıklama eklenmiş metni çıkarma
  • PDF onarma

    • pdfly update-offsets: metin düzenleyiciyle elle düzenlenmiş bir PDF'nin xref tablosunu düzeltip yeniden açılabilecek şekilde onarır
    • xref tablosu, belge içindeki bayt ofsetleri için kullanılan bir indekstir ve elle düzenleme sırasında bozulabilir

0.5.0 sürümünün yayımlanması ve yeni özellikler

  • 13 Ekim 2025'te pdfly 0.5.0 sürümü yayımlandı
  • pdfly sign: PDF belgelerine kolayca elektronik imza eklemeyi sağlar
  • pdfly check-sign: PDF belgeleri için imza doğrulama işlevi
  • pdfly extract-annotated-pages: yalnızca açıklama eklenmiş sayfaları seçerek çıkarır; büyük belgelerde tekrarlı gözden geçirme ve yeniden çalışma süreçlerini destekler
  • pdfly rotate: belgenin belirli sayfalarını döndürme işlevi

Gelecek planları

  • GitHub'daki up-for-grabs issue'larında çeşitli özellik fikirleri hazırlanıyor
  • Yeni katkıcılar için good first issues etiketli issue'lar da hazır; böylece açık kaynağa yeni başlayanların katılımı teşvik ediliyor
  • pdfly sign ve check-sign gibi elektronik imza ile ilgili özellikleri genişletmeye odaklanılması planlanıyor
  • Kullanıcı geri bildirimleri, hata raporları ve özellik önerileri memnuniyetle karşılanıyor

https://github.com/py-pdf/pdfly

2 yorum

 
ifmkl 2025-10-14

Herkesin PDF’sini kullanıyordum; sonra kişisel olarak kullanımı daha rahat olsun diye yalnızca bazı işlevleri (çıkarma, birleştirme, silme, döndürme, sıra değiştirme) destekleyen bir PDF aracı yapıp kullanmaya başladım. Bunu tarayıcıda pdf.js / pdf-lib.js kullanarak yaptım. Ben de kendi kişisel aracımı yapmadan önce araştırdığımda, PDF ile ilgili araç ve sitelerin inanılmaz derecede çok olduğunu gördüm.

 
GN⁺ 2025-10-14
Hacker News görüşleri
  • Bu 10 yıllık bir yorum ama bence hâlâ geçerli. Sadece Python kütüphanelerinde bile PDF ile ilgili işlevleri kısmen örtüşecek şekilde sunan çok fazla seçenek var. Diğer dillerde de benzer şekilde sayısız kütüphane bulunuyor. Sonuçta bu kütüphanelerin her biri, benzer veri yapılarını dönüştüren çeşitli işlevleri bir araya getiriyor. Bu yüzden karmaşık PDF işleri yapmak için iki ya da üç kütüphaneyi birlikte kullanmak gerekiyor; bu da hem geliştirici açısından hem de hesaplama kaynakları açısından verimsiz. Eğer biri Rust ile, bellekte çalışan, iyi tasarlanmış, düşük seviyeli PDF okuma/yazma yapıları oluşturursa tüm ekosistem gerçekten çok daha iyi bir hale gelebilir diye düşünüyorum. Herhangi bir dil veya PDF kütüphanesi bu yapıları kullanabilir ve benimsediğinde kod miktarı azalırken hız ya da güvenlik de artabilir. Ayrıca sadece get_structure_pointer() ve set_structure_pointer() sağlansa bile kütüphaneler birbirleriyle serbestçe entegre olabilir. Böyle bir yapıda küçük kütüphaneler işlev eklemeyi ve hızla benimsenmeyi daha kolay başarabilir. Gerçekte buna kimin girişeceğini bilmiyorum ama buna gerçekten ihtiyaç olduğunu düşünüyorum

    • PDF kütüphanesi geliştirirken kullanım amacına göre bitmeyen tasarım ödünleri vardır. “Bellekte” yaklaşımının kendisi bile başlı başına büyük bir tercihtir. Çünkü PDF formatı, tüm PDF’yi tek seferde belleğe almaya gerek kalmayacak şekilde tasarlanmıştır. Ayrıca asgari arayüze sahip derin modülleri tercih eden biri olarak, sığ ama geniş işlevli modüller üretmenin çözüm olduğunu düşünmüyorum. Son olarak, JVM gibi yönetilen ortamlarda C arayüzüyle yazılmış bir kütüphane ek karmaşıklık ve ek yük de getirir. İlgili bağlantı

    • “Birisi Rust ile iyi tasarlanmış, bellekte çalışan bir PDF yapısı üretirse ekosistem dönüşür” görüşüne katılıyorum. Ama bugün var olan tüm kütüphanelerden çok daha iyi bir kütüphane yapmak bile kolay değil; bunu sürekli güncel tutmak, hata düzeltmek ve bakımını yapmak ise çok daha zor. Yeterli fon olsa bile her yıl aynı tutkuyla bunu sürdürecek birini bulmak gerekir; o kişi ilgisini kaybederse yeni bir sorumlu bulmak gerekir ve bu arada kaçınılmaz olarak şikâyetleri de göğüslemek gerekir. Kısacası, bunu ömür boyu geliştirip bakımını üstlenecek gönüllüye şimdiden teşekkür etmek istiyorum

    • “Rust ile yazılmış mükemmel bir bellek içi PDF yapısı olsa ne güzel olurdu” yorumunu görünce, gerçekten var olan açık kaynak lopdf projesini paylaşmak istiyorum

    • Şu anda da PDF ayrıştırma sorunlarını debug ederken sonunda kendi ayrıştırıcımı yazıyorum. Mevcut ayrıştırıcıları anlamaya çalıştım ama kodları dağınık olduğu için sonunda kendim uygulamak zorunda kaldım. PDF formatı açıkçası, genişleme sürecinde türlü türlü geçici çözüm ve aşırı özellik eklenmesiyle oldukça karmaşık hale gelmiş durumda. Fikrin kendisi iyi ama PDF’de çok fazla nesne türü ve özel özellik bulunduğundan, bunlara bağlama yaptığınız her seferde FFI karmaşıklığı yeniden ortaya çıkıyor. Belki de PDF ile JSON arasında resmî bir eşleme oluşturulsa ve bellek sorunu olmasa, büyük kütüphaneler veriyi bu şekilde birbirine aktarabilir. Sonuçta nesne modeli tamamen farklı değil

    • Tüm bu tartışmanın tek bir XKCD çizgi romanıyla özetlenebileceğini söyleyip ilgili çizgi roman bağlantısını paylaşıyor

  • Poppler, resmî web sitesinde çok ayrıntılı anlatılmasa da, aslında çeşitli araçlar içeren bir kütüphane ve Linux dağıtımlarında da kolayca kullanılabiliyor. Defalarca işime yaramış bir araç takımı. İlgili wiki bağlantısı

    • Bu araçları kullanarak yüz binlerce PDF maaş bordrosunu analiz edip verileri yeni bir finans sistemine aktardım. Benim için 10 üzerinden 10

    • Ben de günlük hayatta poppler araçlarını sık sık kullanıyorum. Gerçekten harika olduklarını düşünüyorum

  • Düşük seviyeli işler için qpdf oldukça kullanışlı

    • Ben de bunu söylemek için gelmiştim. Komut satırında PDF dosyalarıyla çalışırken en çok Qpdf kullanıyorum. Şifreleme, şifre çözme, sayfa çıkarma, birleştirme gibi pek çok iş için kullanılabiliyor. Apache lisanslı ve C++ ile yazılmış
  • pdfcpu.io da var. Ancak sadece basit PDF değişiklikleri gerekiyorsa, çapraz platform açık kaynak bir GUI uygulaması bulmak çok zor. Ben de henüz bulamadım

    • PDF SAM basic’i (“split and merge”) iyi amaçlarla kullandım. Site bağlantısı Açık kaynak, çok platformlu ve yalnızca ücretli sürümde sunulan ek özellikleri de var

    • Kendi sunucunda barındırabiliyorsan Signature PDF de oldukça iyiydi. Proje bağlantısı

    • Belki de pdf24 tools iş görür. Çevrimdışı kurulum da destekliyor

    • 'pdfcpu images list' komutunu denedim ama yerelde bir şey çalıştırırken dışarıdan bir yazı tipi indirmeye başlaması beni irkiltti. Ekim ayındayız ama bu bana fazla ürkütücü geldi, ben pas geçtim

    • Sonunda düşünüp taşındıktan sonra ücretli Creative Cloud lisansı kullanmaya karar verdim. Acrobat gerçekten sorunsuz çalışıyor, yapacak bir şey yok. Gerçekten alternatif istiyorum ama pratikte düzgün bir ikamesi yok

  • PDFgear’ı önermek istiyorum. Tam üst düzey değil ama Adobe alternatifleri arasında orta seviye PDF düzenleme için neredeyse kullanılabilir tek seçenek ve ücretsiz; ayrıca Linux dışında her platformda var

    • Linux dışında her şeyi desteklediğini söyleyince, OpenVMS, Apple II ve DEC Alpha ikilileri nerede diye şakayla soruyor

    • Master PDF de var; bunun Linux sürümü de bulunuyor diye bağlantıyı paylaşıyor

    • Görünüşte iyi dursa da, “ücretsiz, reklamsız, veri satmıyor ve yalnızca yatırım fonlarıyla şeffaf biçimde işletiliyor” söylemine inanmak zor geliyor. Hatta sitelerindeki açıklamayı alıntılayarak, PDFgear’ın reklam veya veri geliri olmadan yatırım fonu ve teknik optimizasyonla sürdürüldüğünü belirtiyor

    • PDFgear bana biraz şüpheli geliyor. Geçmişte kullanıcı fark etmeden buluta yükleme yaptığı olmuştu ve şirketin kendi subreddit’ini de yönettiğine dair işaretler var

  • Bugün öğrendiğim şey: PDF dosyaları için zaten çok sayıda çok amaçlı araç varmış

  • Keşke içindekiler tablosunu (metadata) otomatik oluşturan bir özellik gerçekten olsa. Eski kitap PDF’lerinde bu olmayınca gezinmek çok zorlaşıyor. Kybook3’te de bir sürümü var ama doğru düzgün çalışmıyor. Günümüz LLM teknolojisiyle bu artık mümkün değil mi diye düşünüyorum

    • pdf.tocgen kullanıyorum. Tam otomatik değil ama her şeyi elle yapmaya kıyasla inanılmaz zaman kazandırıyor
  • PDF imzalamayı otomatikleştiren bir yardımcı aracın gerçekten anlamlı olup olmadığını merak ediyorum. Sonuçta imzanın özü, bir insanın okuyup onay vermiş olması değil mi; bunu otomatikleştirmek ne kadar doğru?

    • Şirketlerin kendi ürettikleri belgeleri otomatik olarak imzalamaması için bir neden göremiyorum. Burada kastedilen imza, PDF üzerindeki görsel bir imza değil; herkesin belgeyi kimin verdiğini doğrulayabildiği kriptografik imza. Yani kullanıcının banka ekstresinin gerçekten bankadan geldiğini doğrulayabilmesini sağlayan şey

    • CEO’nun sayısız çalışan sözleşmesini tek tek imzalayacak zamanı yok. Analog dönemde de sekreterlerin kaşe bastığı düşünülürse, imza otomasyonu gayet anlamlı

    • Banka hesap doğrulama belgesi gerektiğinde otomatik imzalanmış şekilde veriliyor. Şube müdürünün oturup bütün başvuruları tek tek imzalamasını beklemem

    • Örneğin 25 PDF imzalamanız gerekiyorsa, görüntüleyicide tek tek elle uğraşmak yerine ekranda gözden geçirip toplu imza atmak çok daha kullanışlı

  • Yukarıda anılanların dışında, “Go PDF processor and CLI” olarak tanımlanan pdfcpu da var. pdfcpu GitHub

  • Benim aklımdaki çok amaçlı PDF aracı, Didier Stevens’ın PDF araç takımıydı. Program bağlantısı