3 puan yazan GN⁺ 2023-10-25 | 1 yorum | WhatsApp'ta paylaş
  • SumatraPDF, Windows için çok formatlı bir belge okuyucudur; PDF, EPUB, MOBI, CBZ, CBR, FB2, CHM, XPS ve DjVu formatlarını destekler
  • Lisansı (A)GPLv3’tür; kodun bir kısmı BSD lisansı altındadır
  • Ek bilgiler Website, Manual ve Developer Information sayfalarında sunulur

1 yorum

 
GN⁺ 2023-10-25
Hacker News yorumları
  • Adobe, Acrobat’tan para kazanmayı daha agresif biçimde zorladıkça bazı PDF işlerini açık kaynak araçlara taşımaya başlamış. SumatraPDF de kullanılan araçlardan biri; qpdf ise şifre kaldırma, kilit açma ve dönüştürme için kullanılıyor ve WSL üzerinde apt-get install qpdf ile kurulabiliyor
    qpdf --decrypt --password="" input.pdf output.pdf ile şifre kaldırılabiliyor; PDF4QT ise sayfa silme, sıralama ve çıkarma için açık kaynak bir PDF düzenleyici, ancak henüz Chocolatey sürümü olmadığı için elle kurulum gerekiyor
    Inkscape ve LibreOffice Draw, PDF düzenleme ve metin ekleme için; MuPDF, ayrıştırma, form doldurma ve metin ekleme için komut satırı aracı ve Python paketi olarak; SumatraPDF görüntüleme için; pdfplumber ise Jupyter Lab ile birlikte PDF tablolarını veri hattına aktarmak üzere çıkarmada faydalı

    • Firefox ile de PDF görüntüleme, imzalama ve metin ekleme yapılabiliyor. Kilidi açtıktan sonra PDF olarak yazdır ile şifre de kaldırılabiliyor
    • PDFTK ve pdfjam de faydalı komut satırı araçları. PDFTK, PDF birleştirme, sayfa çıkarma, silme ve kopyalama ile ham PDF komutlarından metin ve veri çekip işlemek için sıkıştırmayı açmada kullanılıyor; pdfjam ise çoklu sayfa yerleştirme ile sayfa boyutu ve kenar boşluklarını ayarlamak için kullanılıyor
    • qpdf’nin Chocolatey’de olmadığı söylenmişti, ama başka bir Windows paket yöneticisi olan Scoop’ta var: https://github.com/ScoopInstaller/Main/blob/master/bucket/qp...
    • Tablo çıkarma için birkaç yıldır http://tabula.technology/ kullanılıyor. Oldukça karmaşık tabloları da iyi işlemiş ve belirgin bir sorun yaşanmamış
    • Aslında SumatraPDF artık MuPDF kullanıyor. Yine de PDF ve e-kitap işleme tarafında bazı kısıtlar var; örneğin PDF biçimlendirmesini işleme ya da epub içindeki Unicode karakterleri gösterme gibi
  • SumatraPDF yazarının kaleme aldığı harika bir retrospektif yazı: https://blog.kowalczyk.info/article/2f72237a4230410a888acbfc...

    • Retrospektifteki şu dört cümle birbiriyle çelişiyor: “Test olmadan da karmaşık ve görece hatasız kod yazılabilir”, “kod incelemesi olmadan da olur”, “kimse uygulamayı kullanmıyorsa çökse de fark etmez” ve “çok kişi kullanırsa çökmeleri bildirirler, biz de düzeltiriz”
      Asıl kastedilen, testin ya da kod incelemesinin gereksiz olduğu değil, testi kullanıcılara yaptırabileceğiniz fikrine daha yakın
      Yazar da muhtemelen kodunu test ediyordur; sonuçta uygulamayı çalıştırmak da bir testtir. Sadece, regresyon testlerinin verdiği güven hissinden söz edecek kadar katı ya da sistematik bir yaklaşım olmayabilir
      Otomasyon testleri olmadan karmaşık kod yazmanın imkânsız olduğunu ciddi ciddi savunan pek az kişi vardır. Otomatik testleri güçlü biçimde savunuyorum ama 90’ların sonu ile 2000’lerin başında tek bir otomasyon testi olmadan epey büyük bir çapraz platform renderer yazmıştım; süreç uzun sürdü ve her değişiklikle birlikte giderek daha fazla korkutucu hale geldi
    • SumatraPDF’nin 15 yıllık retrospektif yazısına dair eski HN tartışmaları: https://news.ycombinator.com/item?id=27968900 - Temmuz 2021, 133 yorum
      Aynı yazının 2023’te yeniden paylaşılmasına dair tartışma: https://news.ycombinator.com/item?id=35065785 - Mart 2023, 173 yorum
    • “Gtk çirkin, Qt aşırı şişkin ve WxWidgets neredeyse çalışmıyor” kısmına bakınca yazarın çapraz platform araç takımlarına 90’lardan beri pek bakmamış gibi görünüyor
    • İlginç bir yazıydı; sonda düzenleme özellikleri ekleme konusundan söz etmesi özellikle şaşırtıcıydı. Özellik talepleri ve şişme sorununun sonsuza kadar içine çeken bir kara delik gibi geliyor
  • Keşke tüm PDF okuyucu geliştiricileri sioyek’in overview özelliğini[0] uygulasaydı. Çapraz referans öğesinin üzerine fareyle gelince ilgili içerik küçük bir önizleme penceresinde açılıyor
    Ders kitapları ve teknik makaleler okurken oyunun kurallarını tamamen değiştiren bir özellik; ne kadar faydalı olduğunu abartmak zor
    [0] https://github.com/ahrm/sioyek#overview

    • SumatraPDF’yi yapan kişi olarak, sioyek’i biliyorum ve oradan bazı fikirler almayı düşünüyorum. Belki bir sonraki sürümde yer alır
    • Wikipedia da benzer şekilde çalışıyor; muhtemelen onu biliyordur diye düşünüyorum. Neyin yanlış anlaşıldığını merak ediyorum
      Ayrıca bu özellik yüzünden PDF okuyucunun rastgele uzak kod çalıştırmasına yol açması ciddi bir risk olmaz mıydı?
    • Bu, Ted Nelson’ın transclusion kavramı değil mi? Yani “aynı içeriğin algılanabilir biçimde iki veya daha fazla yerde bulunması”
      https://en.m.wikipedia.org/wiki/Transclusion
    • Gerçekten harika. Kendi uygulamam Kavitaya da bu fikirlerin bazılarını taşımak isterim
  • Az önce ilk kez kurdum; performansı Adobe Reader’ı bırakın, Foxit’i bile ezip geçiyor. Adobe Reader’ı geçmek çok da büyük bir iş değil ama Foxit’i geçmesi epey etkileyici.
    Kurulum boyutu da bu programların ancak %10’u kadar. Adobe tam olarak ne yapıyor da yazılımı bu kadar dayanılmaz derecede yavaş ve kullanması eziyet, gerçekten merak ediyorum

    • Adobe muhtemelen PDF spesifikasyonunun %100 desteğini ve çok dar bir sektördeki 6 şirketin gerçekten çaresizce istediği tuhaf özellik taleplerini karşılıyordur
      Sumatra harika ve Windows’ta kullandığım neredeyse tek PDF okuyucu, ama Adobe Acrobat’ın işlevlerinin ancak %10’una sahip. Yine de o %10, neredeyse herkesin ihtiyaç duyduğu şeyler
    • Daha da etkileyici olan, bunun muhtemelen tek geliştiricili bir proje olması. SumatraPDF harika bir yazılım projesinin en iyi örneklerinden biri ve örnek alınacak bir şey
    • Adobe’nin ne yaptığına gelince, muhtemelen bugüne kadar gönderilmiş bütün özellik istek listelerini uyguluyor. Buradaki yorumlar da tamamen “Sumatra iyi ama şu şu özellikler eksik” havasında
    • Foxit casus yazılımı da dağıtmaya başladığında ağzım yandığından, başka şeyler denemeye de çekiniyorum
    • https://old.reddit.com/r/geek/comments/ddh5p/comment/c0zfics...
  • PDF spesifikasyonuna bakıp “Güzelmiş, bunun için bir parser yazmak istiyorum” diye düşünen kişiye selam olsun

    • SumatraPDF’yi yapan kişi olarak, adil olmak gerekirse PDF render etme kısmını bizzat ben yazmadım. O iş gerçekten hiç kolay değil
      Eskiden poppler kullanıyordum, sonra MuPDF’ye geçtim. O dönemde MuPDF daha hareketliydi; sonrasında poppler da hız kazanmış gibi görünüyor
      PDF’nin çekirdek özellik kümesini uygulamak aslında o kadar da kötü değil. Gördüğüm kadarıyla kötü ve karmaşık kısımlar sonradan eklenen XML benzeri şeyler, form içindeki JavaScript, vektör maskeleme gibi karmaşık vektör grafik özellikleri, çoklu renk uzayı desteği ve CMYK ayrımı, yazı tipi işleme ve metin render etme
      Kötü oluşturulmuş PDF’leri de hızlı render etmek zorunda olmak ayrı bir zorluk; PDF oluştururken işleri bozmak kolay ve insanlar bunu akla gelebilecek her şekilde başarıyor. Adobe ya da Chrome açabiliyorsa buna sadece “geçersiz PDF” deyip geçemiyorsunuz; bu yüzden MuPDF geliştiricileri bozuk PDF belgelerini de gösterebilmek için birçok sezgisel yöntem ekledi
    • Parser’ı yazdıktan sonra bile, gerçekte neyin nereye çizileceğini anlamak ilginç bir iş. Özellikle el yapımı belgelerden çok üretilmiş belgelerde daha da öyle; öğelerin konumunu bulmak için matris çarpmanız gerekiyor ve metin içeriğini çıkarmak için de çok özel kod noktası tabloları adına ayrı bir parser daha yazmanız gerekiyor
    • Şaka değil. Dün PDF’de JavaScript içeren formlar olabileceğini öğrendim
      https://tcpdf.org/examples/example_014/
      Bunun nasıl çalıştığı hakkında hiçbir fikrim yok
    • Bunu bizzat yapmış biri olarak, PDF spesifikasyonu birçok açıdan modern JavaScript geliştiricilerinin yaptığı pek çok “API”den çok daha aklı başında ve iyi tasarlanmış
      Orijinal spesifikasyon biraz çirkin; örneğin biçimde bayt tasarrufu yapma uğruna sözlük anahtarlarında tek harf kullanıyor, ama aslında iyi düşünülmüş tarafları da var. Appearance Streams, ileri ve geri uyumluluk açısından harika ve muhtemelen PDF’nin yerini hiçbir şeyin alamamasının en büyük nedenlerinden biri
    • Spesifikasyona uyan PDF dosyaları için parser yazmak o kadar zor olmayabilir. Tabii tam teşekküllü bir render motoru ve arayüz yazmak kesinlikle zor
      Ama birçok PDF dosyası spesifikasyona uymadığından, Adobe’nin parser’ı gibi hatalı PDF dosyalarını da hoşgörüyle kabul etmeniz gerekiyor
  • SumatraPDF için büyük bir güncelleme dün çıktı [1]. Kabarık yapılacaklar listesinde [2] çok sayıda hata düzeltmesi ve iyileştirme var
    [1] https://github.com/sumatrapdfreader/sumatrapdf/releases/tag/...
    [2] https://github.com/sumatrapdfreader/sumatrapdf/issues/3672

    • Gelişmiş seçeneklerle bunu bir tür karanlık mod gibi kullanıyorum. Sıcak sayfa rengi ve koyu arka plan ayarlıyorum
      MainWindowBackground = #191919
      FixedPageUI [
      TextColor = #282828
      BackgroundColor = #ebdbb2
      SelectionColor = #2d938f
      ...
      Şimdiye kadar AutoHotkey ile SumatraPDF-settings.txt dosyasının üzerine yazarak farklı modlar arasında geçiş yapıyordum. Küçük script’i paylaşmak isterdim ama kısa süre önce aniden bozuldu
    • Karanlık mod ve klavyeyle sekme değiştirme, en iyi hafif PDF okuyucuya eklenmiş harika özellikler
    • Yazdırmayla ilgili sorunları düzelttiler mi acaba. O yüzden hep başka bir PDF görüntüleyici kullanmak zorunda kaldım
  • Başkalarının da dediği gibi Sumatra, Mac veya Linux kullanırken sürekli özlenen az sayıdaki Windows'a özel araçlardan biri. Özellikle devre şemaları, makine/teknik çizimler ve veri sayfalarını incelerken her gün özlediğim iki basit işlem var:
    Alt + kaydırma ile yakınlaştırma/uzaklaştırma, sağ tık + sürükle ile kaydırma. Mac veya Linux'ta bu iki özelliği sunan bir görüntüleyici olup olmadığını merak ediyorum. Mac'teki Skim, Option + kaydırma ve sol tık + sürükle ile kaydırmayı destekliyor, ama bunu başka tuşlara veya fare düğmelerine yeniden atayamıyorsunuz

    • Linux'ta Zathura bunu destekliyor. Farkı, yakınlaştırma/uzaklaştırmanın Alt yerine Ctrl ile yapılması. Sağ tıkla sürükleme de kaydırma olarak çalışıyor
      Gerçekten sevdiğim bir özellik de Page Down tuşunun sizi bir sonraki sayfanın en üstüne götürmesi. Sayfa boyutuna tam uymayan bir yakınlaştırma oranıyla hızlıca göz atmak istediğinizde çok kullanışlı
    • Okular'ı gerçekten seviyorum. Özellikle PDF'leri koyu kırmızı arka plan ve sarı yazıyla okumayı sağlayan temasını beğeniyorum. Ama Apple Silicon Mac Mini'de çalıştıramadım. Mac için en güncel brew formula'sı bozuk gibi görünüyor
    • Foxit, Ctrl+kaydırma ile yakınlaştırma/uzaklaştırma yapıyor ve sol tık+ sürükle ile kaydırıyor. Mac'te çalışıyor, Linux'ta da muhtemelen çalışır
      Yeterince benzer değil mi emin değilim. Gerçekten zorlamak isterseniz, uygulama bazında anlık klavye emülasyonu ve giriş yeniden eşleme yapan shareware uygulamalar vardır
      https://www.keyboardmaestro.com/main/ bildiğim kadarıyla standart çözüm
    • qpdfview kullanıyorum ve çok memnunum. Oldukça fazla özelleştirme imkanı sunuyor
    • Acaba Skim öndeyken yalnızca o uygulama için Karabiner Elements ve BetterTouchTool ile bu girdileri yeniden eşleyemez misiniz?
  • SumatraPDF'nin çok kullanışlı bir yanı da, normal görüntü dosyaları değiştirildiğinde onları otomatik olarak yeniden yüklemesi. Bu yüzden grafik çıktısını bir pencere içinde, görüntü dosyasını kaydederek göstermek kolay oluyor

    • Sadece görüntüler değil, PDF'nin tamamı için de aynı şey geçerli. İşte PDF üretimi yapıyorum; güncelleme komutunu çalıştırıp biter bitmez değişiklikleri hemen görebilmek harika
    • Komut satırından PDF'yi seçilen yazıcıya gönderebilmek de çok kullanışlı. En azından Windows'ta bu tam bir killer feature
  • SumatraPDF'yi gerçekten seviyorum. Yıllardır kullanıyorum ve harika. Vim'de LaTeX yazarken belgeyi Sumatra'da yan tarafta açık tutup derlediğimde anında güncelleniyor
    Sayfayı anında yeniden yüklemesi sayesinde iş akışı çok akıcı oluyor

    • Aynen. lervag'a da hakkını vermek lazım. Onun vimtex eklentisi canavar gibi
      Muhtemelen kullandığınız da odur. Sumatra ile varsayılan olarak entegre oluyor; MuPDF, Skim ve diğerleriyle de entegre. Bu yönü harika
    • Evince de bu özelliği destekliyor. Bence bu kesinlikle vazgeçilmez bir özellik
      Linux'a geçmeden önce kısa süre Sumatra kullanmıştım; gayet iyi ve hızlıydı
    • Atril de otomatik olarak yeniden yüklüyor
  • Doktora sırasında taslaklar ve makaleler yazarken PDF değişikliklerini gerçek zamanlı görmek için ana aracım Sumatra PDF idi. Acrobat'ın ücretli sürümü ve Foxit'in ücretsiz sürümü daha fazla özelliğe sahip, ama değişmekte olan dosyayı kilitliyorlar

    • Bu, gereksiz kısıtlamalar uygulanırken bunların kullanıcıyı nasıl engelleyeceğinin yeterince düşünülmemesinin ürüne zarar verebileceğine iyi bir örnek. Android'de aynı şeyi yapan yazılımların da — örneğin SafetyNet veya ekran görüntüsü engelleme gibi — Acrobat Reader gibi anlamsız hale gelmesini dilerim