30 poin oleh GN⁺ 2025-10-14 | 2 komentar | Bagikan ke WhatsApp
  • Alat CLI open-source berbasis Python untuk memanipulasi file PDF yang dibuat oleh tim py-pdf
  • Menyediakan beragam fitur pengeditan PDF seperti menampilkan metadata, mengekstrak dan menggabungkan halaman, menghapus halaman, mengonversi gambar menjadi PDF, mengompresi dokumen, dan membuat buklet
  • Juga mendukung fitur tingkat lanjut seperti mengekstrak gambar dan teks anotasi dari PDF atau memulihkan xref PDF yang rusak akibat pengeditan manual
  • Pada versi 0.5.0 yang baru dirilis, fitur baru telah ditambahkan seperti penandatanganan dan verifikasi dokumen PDF, mengekstrak hanya halaman yang memiliki anotasi, serta memutar halaman tertentu

Alat PDF CLI open-source pdfly

  • pdfly adalah proyek terbaru dari organisasi py-pdf, sebuah alat baris perintah untuk memanipulasi file PDF yang berjalan di lingkungan Python
  • Dikembangkan berdasarkan pustaka fpdf2 dan pypdf, mudah dipasang dan digunakan sehingga bisa dimanfaatkan di berbagai platform
  • Kekuatan terbesar pdfly adalah dukungan fitur yang luas dibandingkan open source pesaing, serta antarmuka intuitif yang mudah digunakan bahkan oleh pengembang pemula
  • Dibandingkan proyek lain, sebagian besar pekerjaan terkait PDF dapat ditangani dengan mudah menggunakan satu alat, sehingga efisiensinya sangat baik

Fitur utama

  • Menampilkan metadata

    • Mendukung penampilan metadata PDF melalui perintah pdfly meta dan pdfly pagemeta
    • Menyediakan data sistem operasi seperti nama file, izin, ukuran, waktu pembuatan/modifikasi/akses
    • Menampilkan data internal PDF seperti versi PDF, jumlah halaman, status enkripsi, informasi font, lampiran, dan jumlah gambar
  • Penggabungan dan pengeditan dokumen

    • pdfly cat: fungsi mengekstrak halaman tertentu dan menggabungkan dokumen
    • pdfly rm: fungsi menghapus halaman secara selektif
    • pdfly x2pdf: mengonversi gambar menjadi dokumen PDF
    • pdfly compress: fungsi kompresi dokumen
    • pdfly 2-up dan pdfly booklet: fungsi pembuatan buklet
  • Ekstraksi konten

    • pdfly extract-images: mengekstrak gambar dari PDF
    • pdfly extract-annotated-text: mengekstrak teks yang dianotasi
  • Pemulihan PDF

    • pdfly update-offsets: memperbaiki tabel xref pada PDF yang diedit manual dengan editor teks agar bisa dibuka kembali
    • Tabel xref adalah indeks offset byte di dalam dokumen, yang dapat rusak saat diedit secara manual

Rilis versi 0.5.0 dan fitur baru

  • pdfly versi 0.5.0 dirilis pada 13 Oktober 2025
  • pdfly sign: dapat menambahkan tanda tangan elektronik ke dokumen PDF dengan mudah
  • pdfly check-sign: fitur verifikasi tanda tangan untuk dokumen PDF
  • pdfly extract-annotated-pages: mengekstrak hanya halaman yang memiliki anotasi secara selektif untuk mendukung peninjauan berulang dan pengerjaan ulang pada dokumen berukuran besar
  • pdfly rotate: fungsi memutar halaman tertentu dalam dokumen

Rencana ke depan

  • Berbagai ide fitur sedang disiapkan pada issue up-for-grabs di GitHub
  • Issue dengan label good first issues untuk kontributor baru juga telah disiapkan guna mendorong partisipasi pemula open source
  • Berencana memfokuskan pengembangan pada perluasan fitur terkait tanda tangan elektronik (sign, check-sign) seperti pdfly sign dan check-sign
  • Sangat menyambut umpan balik pengguna, laporan bug, dan usulan fitur

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

2 komentar

 
ifmkl 2025-10-14

Saya sebelumnya memakai Moduui PDF, lalu untuk memudahkan penggunaan pribadi saya membuat dan sedang memakai alat PDF yang hanya mendukung beberapa fitur saja (ekstraksi, penggabungan, penghapusan, rotasi, perubahan urutan). Menggunakan pdf.js /pdf-lib.js di browser. Sebelum membuat alat pribadi saya sendiri, saya juga sempat mencari-cari, dan ternyata ada sangat banyak alat maupun situs terkait PDF.

 
GN⁺ 2025-10-14
Komentar Hacker News
  • Ini komentar dari 10 tahun lalu, tetapi menurut saya masih relevan. Bahkan hanya di pustaka Python saja ada sangat banyak fitur terkait PDF yang saling tumpang tindih sedikit demi sedikit. Di bahasa lain juga sama, ada banyak sekali pustaka. Pada akhirnya, tiap pustaka itu hanyalah kumpulan berbagai fungsi untuk mengubah struktur data yang mirip. Jadi, untuk pekerjaan PDF yang kompleks, kita terpaksa menggabungkan dua atau tiga pustaka, dan itu tidak efisien baik dari sudut pandang pengembang maupun sumber daya komputasi. Kalau ada seseorang yang membuat struktur pembacaan/penulisan PDF tingkat rendah yang dirancang dengan baik di dalam memori menggunakan Rust, menurut saya seluruh ekosistem akan jauh membaik. Bahasa apa pun atau pustaka PDF apa pun bisa memanfaatkan struktur itu, dan jika diadopsi, kode bisa berkurang serta kecepatan maupun keamanan berpotensi meningkat. Dan kalau cukup menyediakan get_structure_pointer() dan set_structure_pointer(), pustaka-pustaka itu juga bisa saling terhubung dengan bebas. Dengan struktur seperti ini, pustaka kecil akan lebih mudah menambahkan fitur dan cepat diadopsi. Secara realistis saya tidak tahu siapa yang mau mengerjakannya, tetapi saya benar-benar merasa ini diperlukan

    • Saat membuat pustaka PDF, selalu ada trade-off desain tanpa henti tergantung tujuan penggunaannya. "Di dalam memori" sendiri sudah merupakan pilihan besar. Soalnya, format PDF memang dirancang agar seluruh PDF tidak harus dimuat ke memori sekaligus. Dan dari sudut pandang yang lebih menyukai modul dalam dengan antarmuka minimal, membuat modul dangkal dengan fitur luas jelas bukan jawaban. Terakhir, di lingkungan terkelola seperti JVM, pustaka yang dibuat dengan antarmuka C juga menimbulkan kompleksitas dan overhead tambahan. Tautan terkait

    • Saya setuju dengan pendapat bahwa "kalau ada struktur PDF dalam memori yang sangat bagus dibuat dengan Rust, ekosistemnya akan berubah besar". Namun, membuat pustaka yang jauh lebih baik daripada semua pustaka yang ada sekarang saja sudah tidak mudah, apalagi terus memperbaruinya, memperbaiki bug, dan memeliharanya. Bahkan jika dananya cukup, tetap harus menemukan orang yang bisa mengerjakannya dengan antusias dari tahun ke tahun, dan ketika orang itu kehilangan minat, harus mencari penanggung jawab baru, sambil menerima keluhan yang tak terhindarkan di antaranya. Singkatnya, saya ingin lebih dulu mengucapkan terima kasih kepada sukarelawan yang akan membuat dan memelihara ini seumur hidup

    • Melihat pembahasan tentang "akan bagus jika ada struktur PDF dalam memori yang hebat dibuat dengan Rust", saya ingin membagikan lopdf, open source yang memang sudah ada

    • Bahkan sekarang pun, ketika sedang men-debug masalah parsing PDF, saya akhirnya menulis parser sendiri. Saya sempat mencoba memahami parser yang sudah ada, tetapi kodenya berantakan sehingga pada akhirnya saya sampai mengimplementasikannya sendiri. Format PDF, terus terang, sudah menjadi cukup rumit karena dalam proses pengembangannya bercampur berbagai solusi sementara dan penambahan fitur berlebihan. Idenya sendiri bagus, tetapi PDF memiliki terlalu banyak tipe objek dan properti khusus, sehingga setiap kali membuat binding untuk ini, kompleksitas FFI yang sama pada akhirnya terulang lagi. Mungkin lebih baik membuat pemetaan resmi antara PDF dan JSON sehingga, selama masalah memorinya bisa diatasi, pustaka-pustaka utama bisa saling bertukar data. Karena model objeknya tidak sepenuhnya berbeda

    • Sambil bercanda bahwa seluruh diskusi ini bisa diringkas dalam satu komik XKCD, ia membagikan tautan komik terkait

  • Poppler memang tidak dijelaskan secara rinci di situs resminya, tetapi kenyataannya ini adalah pustaka yang juga menyertakan berbagai kumpulan alat dan mudah dipakai di distribusi Linux. Alat yang sudah beberapa kali saya pakai dengan sangat baik. Tautan wiki terkait

    • Dengan memanfaatkan alat-alat ini, saya menganalisis ratusan ribu slip gaji PDF lalu mengunggah datanya ke sistem keuangan baru. Saya puas sekali, sampai layak diberi nilai 10 dari 10

    • Saya juga sering memakai alat poppler. Menurut saya benar-benar luar biasa

  • Untuk pekerjaan tingkat rendah, qpdf cukup berguna

    • Saya juga datang untuk mengatakan ini. Qpdf paling sering saya pakai di command line untuk menangani file PDF. Bisa dipakai untuk enkripsi, dekripsi, ekstraksi halaman, penggabungan, dan banyak lagi. Lisensinya Apache dan ditulis dalam C++
  • Ada juga pdfcpu.io. Namun, jika hanya butuh perubahan PDF sederhana, sangat sulit menemukan aplikasi GUI open source lintas platform. Saya sendiri masih belum menemukannya

    • Saya pernah cukup sering memakai PDF SAM basic ("split and merge"). Tautan situs Ini open source, multiplatform, dan ada fitur tambahan yang hanya tersedia di versi berbayar

    • Jika self-hosting memungkinkan, Signature PDF juga lumayan bagus. Tautan proyek

    • Mungkin pdf24 tools cukup oke. Mendukung instalasi offline juga

    • Saya pernah mencoba pdfcpu images list, lalu kaget ketika tiba-tiba mulai mengunduh font tertentu dari luar di mesin lokal. Ini baru Oktober, tapi terlalu menyeramkan jadi saya lewatkan

    • Setelah mempertimbangkannya, saya akhirnya memutuskan memakai lisensi berbayar Creative Cloud. Acrobat memang bekerja dengan baik, jadi sulit dihindari. Saya benar-benar menginginkan alternatif, tetapi secara realistis belum ada pengganti yang memadai

  • Saya ingin memperkenalkan PDFgear. Memang bukan yang paling canggih, tetapi untuk pengeditan PDF tingkat menengah sebagai alternatif Adobe, ini hampir satu-satunya yang benar-benar layak dipakai, gratis, dan tersedia di semua platform kecuali Linux

    • Karena dibilang mendukung semua selain Linux, ia bercanda menanyakan di mana binary untuk OpenVMS, Apple II, dan DEC Alpha berada

    • Ada juga Master PDF, dan ini mendukung Linux juga. Tautan dibagikan

    • Meski kelihatannya bagus, saya sulit percaya pada logika "gratis, tanpa iklan, tidak menjual data, dan berjalan transparan hanya dengan dana investor". Ia lalu mengutip penjelasan di situs resminya, yang menyatakan bahwa PDFgear beroperasi tanpa pendapatan dari iklan atau data pengguna, melainkan dari dana investor dan optimalisasi teknologi

    • Saya agak curiga pada PDFgear. Dulu pernah ada unggahan ke cloud tanpa sepengetahuan pengguna, dan ada indikasi bahwa perusahaan itu juga mengelola subreddit mereka sendiri

  • Fakta yang baru saya ketahui hari ini: ternyata sudah ada sangat banyak alat multifungsi untuk file PDF

  • Saya benar-benar berharap ada fitur yang bisa membuat daftar isi (metadata) secara otomatis. PDF buku lama tidak punya ini, jadi navigasinya sangat tidak nyaman. Kybook3 juga punya versinya, tetapi tidak bekerja dengan akurat. Dengan teknologi LLM sekarang, bukankah ini jadi mungkin?

    • Saya memakai pdf.tocgen. Memang tidak sepenuhnya otomatis, tetapi menghemat waktu jauh lebih banyak daripada mengerjakannya sepenuhnya manual
  • Saya penasaran apakah utilitas untuk mengotomatisasi penandatanganan PDF memang masuk akal. Hakikat tanda tangan adalah bahwa manusia membaca lalu menyetujuinya, jadi saya ragu apakah tepat untuk mengotomatiskannya

    • Saya rasa tidak ada alasan bagi perusahaan untuk tidak menandatangani dokumen yang mereka buat sendiri secara otomatis. Yang dimaksud tanda tangan di sini bukan tanda tangan visual di dalam PDF, melainkan tanda tangan kriptografis yang memungkinkan siapa pun memverifikasi penerbitnya. Artinya, pengguna bisa memastikan apakah rekening koran bank itu benar-benar berasal dari bank tersebut

    • CEO tidak punya waktu untuk menandatangani banyak kontrak karyawan. Bahkan di era analog pun sekretaris berperan membubuhkan cap, jadi otomatisasi tanda tangan tetap masuk akal dalam praktik

    • Bukti rekening bank bisa diterbitkan dan ditandatangani secara otomatis kapan pun diperlukan. Tidak masuk akal berharap kepala cabang duduk sendiri menandatangani setiap permohonan satu per satu

    • Misalnya jika harus menandatangani 25 PDF, akan lebih nyaman meninjaunya di layar lalu menandatangani secara batch sekaligus daripada mengerjakannya satu per satu secara manual di penampil

  • Selain yang disebut di atas, ada juga pdfcpu, sebuah "Go PDF processor and CLI". GitHub pdfcpu

  • Alat PDF serbaguna yang saya pikirkan adalah kumpulan alat PDF milik Didier Stevens. Tautan program