3 poin oleh GN⁺ 2023-10-25 | 1 komentar | Bagikan ke WhatsApp
  • SumatraPDF adalah pembaca dokumen multi-format untuk Windows, mendukung format PDF, EPUB, MOBI, CBZ, CBR, FB2, CHM, XPS, dan DjVu
  • Lisensinya adalah (A)GPLv3, dan sebagian kode menggunakan lisensi BSD
  • Informasi tambahan tersedia di Website, Manual, dan Developer Information

1 komentar

 
GN⁺ 2023-10-25
Pendapat di Hacker News
  • Karena Adobe makin agresif mendorong monetisasi Acrobat, sebagian pekerjaan PDF sedang dialihkan ke alat open source. SumatraPDF adalah salah satu alat yang dipakai; qpdf digunakan untuk menghapus kata sandi, membuka kunci, dan konversi, serta bisa dipasang di WSL dengan apt-get install qpdf
    Kata sandi bisa dihapus dengan qpdf --decrypt --password="" input.pdf output.pdf, dan PDF4QT adalah editor PDF open source untuk menghapus, mengurutkan, dan mengekstrak halaman, tetapi karena belum ada rilis Chocolatey, perlu dipasang manual
    Inkscape dan LibreOffice Draw berguna untuk mengedit PDF dan menambahkan teks; MuPDF sebagai alat command-line dan paket Python untuk parsing, mengisi formulir, dan menambahkan teks; SumatraPDF untuk melihat; sedangkan pdfplumber berguna bersama Jupyter Lab untuk mengekstrak tabel PDF ke pipeline data

    • Firefox juga bisa digunakan untuk melihat PDF, menandatangani, dan menambahkan teks. Setelah dibuka kuncinya, kata sandi juga bisa dihapus dengan cetak ke PDF
    • PDFTK dan pdfjam juga alat command-line yang berguna. PDFTK dipakai untuk menggabungkan PDF, mengekstrak, menghapus, dan menggandakan halaman, serta melakukan dekompresi agar teks dan data dari perintah PDF mentah bisa diambil dan dimanipulasi; pdfjam digunakan untuk mencetak beberapa halaman dalam satu lembar serta menyesuaikan ukuran halaman dan margin
    • Ada yang bilang qpdf tidak ada di Chocolatey, tetapi qpdf tersedia di Scoop, package manager Windows lainnya: https://github.com/ScoopInstaller/Main/blob/master/bucket/qp...
    • Untuk ekstraksi tabel, sudah bertahun-tahun memakai http://tabula.technology/. Bahkan tabel yang cukup rumit pun ditangani dengan baik, dan tidak ada masalah berarti
    • Sebenarnya SumatraPDF kini menggunakan MuPDF. Namun ada beberapa keterbatasan pada rendering PDF dan e-book, misalnya dalam pemrosesan format PDF atau penampilan karakter Unicode di epub
  • Tulisan retrospektif yang bagus dari pembuat SumatraPDF: https://blog.kowalczyk.info/article/2f72237a4230410a888acbfc...

    • Empat kalimat dalam retrospektif itu—“Anda bisa menulis kode yang kompleks dan relatif bebas bug tanpa pengujian”, “bisa juga tanpa code review”, “kalau tidak ada yang memakai aplikasinya, tidak masalah kalau crash”, dan “kalau banyak yang memakai, mereka akan memberi tahu soal crash dan kita memperbaikinya”—saling bertentangan
      Makna sebenarnya lebih dekat ke menyerahkan pengujian kepada pengguna, bukan bahwa pengujian atau code review tidak diperlukan
      Penulisnya mungkin juga memang menguji kodenya. Menjalankan aplikasi pun termasuk pengujian. Hanya saja kemungkinan besar caranya tidak cukup ketat atau sistematis sampai bisa membicarakan rasa aman yang diberikan oleh regression test
      Hampir tidak ada orang yang serius berpendapat bahwa menulis kode kompleks tanpa automated test itu mustahil. Saya sangat mendukung automated test, tetapi pada akhir 90-an dan awal 2000-an pernah membuat renderer cross-platform yang cukup besar tanpa satu pun automated test; prosesnya lama, dan makin banyak perubahan dilakukan, makin menakutkan rasanya
    • Diskusi HN lama tentang tulisan retrospektif 15 tahun SumatraPDF: https://news.ycombinator.com/item?id=27968900 - Juli 2021, 133 komentar
      Diskusi repost tahun 2023 untuk tulisan yang sama: https://news.ycombinator.com/item?id=35065785 - Maret 2023, 173 komentar
    • Melihat bagian “Gtk jelek, Qt sangat bloat, dan WxWidgets nyaris tidak berfungsi”, sepertinya penulisnya belum meninjau toolkit cross-platform sejak era 90-an
    • Tulisannya menarik, dan bagian di akhir yang menyebut penambahan fitur penyuntingan terasa sangat mengejutkan. Kedengarannya seperti lubang hitam yang tanpa henti menyedot feature request dan bloat
  • Semoga semua pengembang PDF reader mengimplementasikan fitur overview milik sioyek[0]. Ketika kursor diarahkan ke item cross-reference, isi referensinya terbuka dalam jendela pratinjau kecil
    Ini benar-benar mengubah pengalaman saat membaca buku teks dan makalah teknis, dan kegunaannya sulit dilebih-lebihkan
    [0] https://github.com/ahrm/sioyek#overview

    • Dari sudut pandang pembuat SumatraPDF, saya tahu sioyek dan sedang mempertimbangkan untuk mengambil beberapa ide darinya. Mungkin masuk ke versi berikutnya
    • Wikipedia juga bekerja dengan cara serupa, dan kemungkinan Anda sudah tahu soal itu. Saya penasaran apa yang sedang disalahpahami
      Selain itu, kalau fitur itu membuat PDF reader menjalankan kode jarak jauh arbitrer, bukankah itu risiko serius?
    • Bukankah ini transclusion dari Ted Nelson? Yaitu “konten yang sama hadir di lebih dari satu tempat dengan cara yang dapat dikenali”
      https://en.m.wikipedia.org/wiki/Transclusion
    • Benar-benar keren. Saya ingin membawa sebagian ide ini ke aplikasi saya, Kavita
  • Saya baru saja menginstalnya untuk pertama kali, dan performanya mengungguli bukan hanya Adobe Reader, tetapi bahkan Foxit. Mengalahkan Adobe Reader memang bukan hal luar biasa, tapi mengalahkan Foxit cukup mengesankan
    Ukuran instalasinya juga hanya sekitar 10% dari program-program itu. Saya jadi penasaran, Adobe sebenarnya melakukan apa sampai perangkat lunaknya bisa selambat dan sesulit itu untuk dipakai

    • Adobe mungkin sedang menangani dukungan 100% untuk spesifikasi PDF dan permintaan fitur rumit yang sangat diinginkan oleh 6 perusahaan di industri yang sangat sempit
      Sumatra memang hebat dan hampir satu-satunya PDF reader yang saya pakai di Windows, tetapi fiturnya mungkin hanya sekitar 10% dari Adobe Acrobat. Hanya saja, 10% itu adalah fitur yang dibutuhkan hampir semua orang
    • Yang mungkin lebih mengesankan adalah ini proyek yang dikembangkan oleh satu orang. SumatraPDF adalah salah satu contoh utama proyek perangkat lunak yang bagus, dan layak dijadikan panutan
    • Yang dilakukan Adobe mungkin adalah menangani semua daftar keinginan fitur yang pernah diajukan sejauh ini. Komentar-komentar di sini pun semuanya bernada “Sumatra bagus, tapi fitur ini dan itu belum ada”
    • Sejak kapok ketika Foxit mulai menyertakan spyware, saya jadi ragu mencoba yang lain
    • https://old.reddit.com/r/geek/comments/ddh5p/comment/c0zfics...
  • Berkat bagi orang yang melihat spesifikasi PDF lalu berpikir, “Bagus, saya ingin menulis parser untuk ini”

    • Dari sudut pandang pembuat SumatraPDF, agar adil, saya tidak menulis sendiri rendering PDF-nya. Itu benar-benar bukan pekerjaan mudah
      Dulu saya memakai poppler, lalu beralih ke MuPDF. Saat itu MuPDF lebih aktif, dan setelah itu poppler tampaknya juga mulai bergerak lebih cepat
      Kumpulan fitur inti PDF sendiri tidak terlalu buruk untuk diimplementasikan. Dari yang saya lihat, bagian yang buruk dan rumit adalah hal-hal yang ditambahkan belakangan seperti XML, JavaScript di dalam form, fitur grafis vektor kompleks seperti masking vektor, dukungan berbagai color space dan separasi CMYK, penanganan font, serta rendering teks
      Bagian sulit lainnya adalah PDF yang dibuat dengan salah pun harus dirender dengan cepat. PDF mudah sekali dirusak saat dibuat, dan orang-orang merusaknya dengan segala cara yang bisa dibayangkan. Kalau Adobe atau Chrome bisa membukanya, kita tidak bisa begitu saja menyebutnya “PDF yang salah”, jadi para pengembang MuPDF menambahkan banyak heuristik agar dokumen PDF yang rusak pun tetap bisa ditampilkan
    • Bahkan setelah membuat parser-nya sendiri, mencari tahu apa yang sebenarnya harus ditampilkan dan di mana juga menarik. Terutama pada dokumen yang dihasilkan otomatis dibanding dokumen yang dibuat manual; untuk mendapatkan posisi elemen harus mengalikan matriks, dan untuk mengetahui isi teks harus menulis parser lagi untuk tabel codepoint yang sangat kustom
    • Ini bukan lelucon. Kemarin saya baru tahu bahwa PDF bisa memiliki form berisi JavaScript
      https://tcpdf.org/examples/example_014/
      Saya tidak tahu bagaimana ini bisa bekerja
    • Dari pengalaman langsung, spesifikasi PDF dalam banyak hal jauh lebih waras dan dirancang lebih baik daripada banyak “API” yang dibuat para developer JavaScript modern
      Spesifikasi aslinya memang agak jelek, misalnya memakai satu huruf untuk key dictionary demi menghemat byte dalam formatnya, tetapi ada juga bagian yang benar-benar dipikirkan dengan baik. Appearance Streams sangat bagus untuk kompatibilitas maju dan mundur, dan mungkin merupakan alasan terbesar mengapa belum ada apa pun yang menggantikan PDF
    • Menulis parser untuk file PDF yang mematuhi spesifikasi mungkin tidak terlalu sulit. Tentu saja menulis renderer dan antarmuka yang lengkap jelas sulit
      Namun karena banyak file PDF tidak mematuhi spesifikasi, parser juga harus menerima file PDF yang salah secara toleran seperti parser milik Adobe
  • Pembaruan besar SumatraPDF keluar kemarin [1]. Daftar backlog [2] memuat banyak perbaikan bug dan peningkatan
    [1] https://github.com/sumatrapdfreader/sumatrapdf/releases/tag/...
    [2] https://github.com/sumatrapdfreader/sumatrapdf/issues/3672

    • Saya memakainya seperti dark mode melalui opsi lanjutan seperti ini, dengan mengatur warna halaman yang hangat dan latar belakang gelap
      MainWindowBackground = #191919
      FixedPageUI [
      TextColor = #282828
      BackgroundColor = #ebdbb2
      SelectionColor = #2d938f
      ...
      Sampai sekarang saya beralih di antara mode-mode lain dengan menimpa SumatraPDF-settings.txt memakai AutoHotkey. Saya ingin membagikan skrip kecilnya, tetapi belum lama ini tiba-tiba rusak
    • Dark mode dan perpindahan tab dengan keyboard adalah tambahan yang hebat untuk PDF reader ringan terbaik
    • Saya penasaran apakah masalah terkait pencetakan sudah diperbaiki. Karena itu saya selalu akhirnya memakai PDF viewer lain
  • Seperti yang dikatakan orang lain, Sumatra adalah salah satu dari sedikit utilitas khusus Windows yang selalu saya rindukan saat memakai Mac atau Linux. Khususnya saat melihat skematik rangkaian, gambar mesin/teknis, dan datasheet, ada dua operasi sederhana yang saya rindukan setiap hari:
    Alt + scroll untuk zoom in/out, dan klik kanan + drag untuk berpindah/pan. Saya penasaran apakah ada viewer di Mac atau Linux yang menyediakan dua fitur ini. Skim di Mac mendukung Option + scroll serta klik kiri + drag untuk berpindah, tetapi tidak bisa diatur ulang ke tombol keyboard atau tombol mouse lain

    • Di Linux, Zathura mendukung itu. Bedanya, zoom in/out memakai Ctrl, bukan Alt. Drag klik kanan berfungsi untuk berpindah/pan
      Satu fitur yang benar-benar saya suka adalah Page Down berpindah ke bagian paling atas halaman berikutnya. Ini sangat praktis saat ingin menelusuri cepat dengan tingkat zoom yang tidak pas persis dengan ukuran halaman
    • Saya sangat suka Okular. Terutama temanya yang memungkinkan membaca PDF dengan latar merah gelap dan teks kuning. Namun saya tidak bisa menjalankannya di Apple Silicon Mac Mini. Sepertinya brew formula terbaru untuk Mac sedang rusak
    • Foxit melakukan zoom in/out dengan Ctrl+scroll, dan berpindah/pan dengan klik kiri+drag. Berjalan di Mac, dan kemungkinan juga di Linux
      Rasanya itu cukup mirip. Kalau benar-benar ingin memaksakan, mungkin ada aplikasi shareware yang melakukan emulasi keyboard per aplikasi dan remapping input secara langsung
      Setahu saya, https://www.keyboardmaestro.com/main/ adalah solusi standar
    • Saya memakai qpdfview dan sangat puas. Bisa dikustomisasi cukup banyak
    • Mungkin input itu bisa di-remap dengan Karabiner Elements dan BetterTouchTool hanya saat Skim berada di foreground
  • Hal yang sangat nyaman di SumatraPDF adalah ketika file gambar biasa diubah, ia otomatis memuat ulang. Jadi mudah menampilkan output grafis di dalam jendela dengan cara menyimpan file gambar

    • Bukan hanya gambar, seluruh PDF juga begitu. Di pekerjaan saya membuat PDF, dan sangat bagus ketika menjalankan perintah pembaruan lalu begitu selesai perubahan langsung terlihat
    • Bisa mengirim PDF ke printer yang dipilih dari command line juga sangat nyaman. Setidaknya di Windows, itu adalah killer feature
  • Saya benar-benar suka SumatraPDF. Sudah memakainya bertahun-tahun dan ini luar biasa. Saat memakai LaTeX di vim, saya membuka dokumen berdampingan di Sumatra, lalu ketika dikompilasi langsung diperbarui
    Karena halaman langsung dimuat ulang, alur kerjanya sangat mulus

    • Benar. Kita juga harus memberi penghormatan kepada lervag. plugin vimtex miliknya luar biasa
      Kemungkinan besar Anda memakai itu. Secara default terintegrasi dengan Sumatra, dan juga terintegrasi dengan MuPDF, Skim, dan lainnya. Bagian itu keren
    • Evince juga mendukung fitur ini. Secara pribadi, saya menganggapnya benar-benar wajib
      Saya sempat memakai Sumatra sebentar sebelum pindah ke Linux, dan itu cukup bagus serta responsif
    • Atril juga otomatis memuat ulang
  • Selama program doktoral, saat menulis manuskrip dan makalah, saya menjadikan Sumatra PDF alat utama untuk melihat perubahan PDF secara real time. Acrobat versi berbayar dan Foxit versi gratis punya lebih banyak fitur, tetapi mereka mengunci file yang sedang diubah

    • Ini contoh bagus bahwa ketika menerapkan pembatasan yang tidak perlu tanpa benar-benar mempertimbangkan bagaimana pembatasan itu akan mengganggu pengguna, produk bisa dirugikan. Saya berharap perangkat lunak di Android yang melakukan hal serupa, misalnya SafetyNet atau pencegahan screenshot, juga menjadi tidak berguna seperti Acrobat Reader