3 पॉइंट द्वारा GN⁺ 2023-10-25 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • SumatraPDF Windows के लिए एक multi-format document reader है, जो PDF, EPUB, MOBI, CBZ, CBR, FB2, CHM, XPS, DjVu formats को support करता है
  • इसका license (A)GPLv3 है, और कुछ code पर BSD license लागू होता है
  • अतिरिक्त जानकारी Website, Manual, Developer Information पर उपलब्ध है

1 टिप्पणियां

 
GN⁺ 2023-10-25
Hacker News की राय
  • Adobe द्वारा Acrobat के monetization को और आक्रामक तरीके से आगे बढ़ाने के कारण कुछ PDF कामों को open-source tools पर शिफ्ट किया जा रहा है। SumatraPDF भी इस्तेमाल होने वाले tools में से एक है, और qpdf का इस्तेमाल password हटाने, unlock करने और conversion के लिए होता है; WSL में इसे apt-get install qpdf से install किया जा सकता है
    qpdf --decrypt --password="" input.pdf output.pdf से password हटाया जा सकता है, और PDF4QT पेज delete, arrange और extract करने के लिए एक open-source PDF editor है, लेकिन अभी Chocolatey release नहीं है, इसलिए manual install करना पड़ता है
    Inkscape और LibreOffice Draw PDF editing व text जोड़ने के लिए, MuPDF parsing, form filling और text जोड़ने के command-line tools तथा Python package के रूप में, SumatraPDF viewing के लिए, और pdfplumber Jupyter Lab के साथ PDF tables को data pipeline में extract करने के लिए उपयोगी है

    • Firefox से भी PDF देखना, sign करना और text जोड़ना संभव है। Unlock करने के बाद PDF में print करने से password भी हटाया जा सकता है
    • PDFTK और pdfjam भी उपयोगी command-line tools हैं। PDFTK का इस्तेमाल PDF merge करने, pages extract/delete/duplicate करने, और raw PDF commands से text व data निकालकर manipulate करने के लिए decompression में होता है, जबकि pdfjam multiple pages को एक साथ print करने और page size व margins adjust करने में इस्तेमाल होता है
    • कहा गया था कि qpdf Chocolatey में नहीं है, लेकिन दूसरे Windows package manager Scoop में है: https://github.com/ScoopInstaller/Main/blob/master/bucket/qp...
    • Table extraction के लिए कई सालों से http://tabula.technology/ इस्तेमाल कर रहा/रही हूँ। इसने काफी जटिल tables भी अच्छे से handle किए और कोई खास समस्या नहीं हुई
    • असल में SumatraPDF अब MuPDF का उपयोग करता है। हालांकि PDF और e-book rendering में कुछ limitations हैं, जैसे PDF formatting handle करना या epub में Unicode characters दिखाना
  • SumatraPDF के लेखक द्वारा लिखा शानदार retrospective लेख: https://blog.kowalczyk.info/article/2f72237a4230410a888acbfc...

    • Retrospective में “tests के बिना भी complex और relatively bug-free code लिखा जा सकता है”, “code review के बिना भी संभव है”, “अगर कोई app इस्तेमाल नहीं करता तो crash होने से फर्क नहीं पड़ता”, और “अगर बहुत लोग इस्तेमाल करते हैं, तो वे crashes बताते हैं और फिर आप fix करते हैं” — ये चारों वाक्य आपस में विरोधाभासी हैं
      असल मतलब यह नहीं है कि tests या code review की जरूरत नहीं, बल्कि यह कि testing users पर छोड़ी जा सकती है
      लेखक भी शायद code test करते ही होंगे। App चलाकर देखना भी testing है। बस संभव है कि यह regression tests से मिलने वाली सुरक्षा की बात करने लायक इतना सख्त या व्यवस्थित तरीका न हो
      गंभीरता से यह दावा करने वाले लोग बहुत कम हैं कि automated tests के बिना complex code लिखना असंभव है। मैं automated testing का मजबूत समर्थक हूँ, लेकिन 90s के अंत/2000s की शुरुआत में मैंने एक काफी बड़ा cross-platform renderer बिना एक भी automated test के बनाया था; उस प्रक्रिया में लंबा समय लगा और हर बदलाव के साथ डर बढ़ता गया
    • SumatraPDF के 15 साल वाले retrospective पर पुराने HN discussions: https://news.ycombinator.com/item?id=27968900 - जुलाई 2021, 133 comments
      उसी लेख की 2023 repost discussion: https://news.ycombinator.com/item?id=35065785 - मार्च 2023, 173 comments
    • “Gtk बदसूरत है, Qt बेहद भारी-भरकम है, और WxWidgets मुश्किल से काम करता है” वाला हिस्सा देखकर लगता है कि लेखक ने cross-platform toolkits को 90s के बाद से शायद देखा ही नहीं
    • लेख दिलचस्प था, और अंत में editing feature जोड़ने का जिक्र खास तौर पर चौंकाने वाला था। यह feature requests और bloat को अंतहीन रूप से खींच लेने वाले black hole जैसा लगता है
  • अच्छा होगा अगर सभी PDF reader developers sioyek के overview feature[0] को implement करें। Cross-reference items पर mouse hover करने से reference content एक छोटी preview window में खुलता है
    Textbooks और technical papers पढ़ते समय यह पूरी तरह game-changing feature है, और इसकी उपयोगिता पर जितना भी जोर दिया जाए कम है
    [0] https://github.com/ahrm/sioyek#overview

    • SumatraPDF बनाने वाले के तौर पर, मैं sioyek के बारे में जानता/जानती हूँ और वहाँ से कुछ ideas लेने के बारे में सोच रहा/रही हूँ। शायद अगली version में आ जाए
    • Wikipedia भी कुछ इसी तरह काम करता है, और शायद आपको यह पता होगा। समझ नहीं आ रहा कि गलतफहमी कहाँ है
      साथ ही, अगर उस feature की वजह से PDF reader arbitrary remote code execute करने लगे, तो यह गंभीर जोखिम नहीं होगा क्या?
    • क्या यह Ted Nelson की transclusion नहीं है? यानी “एक ही content का पहचानने योग्य तरीके से दो या अधिक जगहों पर मौजूद होना”
      https://en.m.wikipedia.org/wiki/Transclusion
    • वाकई शानदार है। मैं अपने app Kavita में भी इन ideas में से कुछ लेना चाहूँगा/चाहूँगी
  • अभी पहली बार इंस्टॉल करके देखा, और performance Adobe Reader तो क्या, Foxit से भी कहीं बेहतर है। Adobe Reader को हराना कोई बहुत बड़ी बात नहीं है, लेकिन Foxit को हराना काफी impressive है
    इंस्टॉल साइज भी उन programs के करीब 10% जितना ही है। सोचता हूं Adobe आखिर क्या करता है कि उसका software इतना असहनीय रूप से धीमा और इस्तेमाल में तकलीफदेह हो जाता है

    • Adobe शायद PDF spec का 100% support और किसी बहुत ही niche industry की 6 कंपनियों की बेहद जरूरी obscure feature requests संभाल रहा होगा
      Sumatra शानदार है और Windows पर मेरे इस्तेमाल का लगभग इकलौता PDF reader है, लेकिन इसमें Adobe Acrobat की features का शायद 10% ही है। बस वह 10% लगभग हर किसी को चाहिए होता है
    • इससे भी ज्यादा impressive बात शायद यह है कि यह एक solo developer का project है। SumatraPDF अच्छे software project का एक representative example है, और aspire करने लायक चीज है
    • Adobe क्या कर रहा है? शायद अब तक आई हर feature wish list को handle कर रहा होगा। यहां के comments भी सब “Sumatra अच्छा है, लेकिन इसमें ये-ये features missing हैं” जैसी बातें ही हैं
    • Foxit ने जब spyware bundle करना शुरू किया था और उससे चोट खाई, तब से दूसरी चीजें try करने में भी हिचक होती है
    • https://old.reddit.com/r/geek/comments/ddh5p/comment/c0zfics...
  • जिसने PDF spec देखकर सोचा, “अच्छा है, इसके लिए एक parser लिखना चाहूंगा”, उसे आशीर्वाद

    • SumatraPDF बनाने वाले के तौर पर, fairness में कहूं तो PDF rendering खुद से नहीं लिखी। वह वाकई आसान काम नहीं है
      पहले poppler इस्तेमाल करता था, फिर MuPDF पर switch किया। उस समय MuPDF ज्यादा active था, और बाद में लगता है poppler ने भी रफ्तार पकड़ी
      core PDF feature set खुद implement करने में इतना बुरा नहीं है। मेरे देखे में खराब और complex हिस्से वे हैं जो बाद में जोड़े गए, जैसे XML जैसी चीजें, forms के अंदर JavaScript, vector masking जैसी complex vector graphics features, multiple color spaces support और CMYK separations, font handling और text rendering
      गलत तरीके से बनी PDFs को भी जल्दी render करना मुश्किल है, और PDF बनाते समय उसे खराब करना आसान है; लोग उसे हर imaginable तरीके से खराब करते हैं। अगर Adobe या Chrome उसे खोल सकता है तो आप उसे सिर्फ “invalid PDF” नहीं कह सकते, इसलिए MuPDF developers ने broken PDF documents भी दिखाने के लिए बहुत सारी heuristics जोड़ी हैं
    • parser खुद बनाने के बाद भी, असल में क्या और कहां display करना है यह पता लगाना interesting है। खासकर हाथ से बनाए documents की तुलना में generated documents में ज्यादा; element positions निकालने के लिए matrices multiply करनी पड़ती हैं, और text content जानने के लिए बहुत custom codepoint tables के लिए एक और parser लिखना पड़ता है
    • मजाक नहीं है। कल ही पता चला कि PDF में JavaScript वाले forms हो सकते हैं
      https://tcpdf.org/examples/example_014/
      यह आखिर कैसे काम करता है, समझ नहीं आता
    • खुद करके देखा है, PDF spec कई मायनों में modern JavaScript developers द्वारा बनाए गए बहुत से “API” से कहीं ज्यादा sane और well-designed है
      original spec format में bytes बचाने की कोशिश में dictionary keys के लिए single letter इस्तेमाल करने जैसी वजहों से थोड़ी बदसूरत है, लेकिन कुछ हिस्से सच में अच्छी तरह सोचे गए हैं। Appearance Streams forward/backward compatibility के लिए शानदार हैं, और शायद सबसे बड़ा कारण यही है कि PDF की जगह कोई चीज नहीं ले पाई
    • spec-compliant PDF files के लिए parser लिखना शायद बहुत कठिन न हो। बेशक पूरा renderer और interface लिखना निश्चित रूप से मुश्किल है
      लेकिन बहुत सारी PDF files spec follow नहीं करतीं, इसलिए Adobe के parser की तरह malformed PDF files को भी leniently accept करना पड़ता है
  • SumatraPDF का बड़ा update कल आया [1]। backlog list [2] में कई bug fixes और improvements हैं
    [1] https://github.com/sumatrapdfreader/sumatrapdf/releases/tag/...
    [2] https://github.com/sumatrapdfreader/sumatrapdf/issues/3672

    • advanced options से मैं इसे इस तरह dark mode जैसा इस्तेमाल कर रहा हूं। warm page color और dark background set करने जैसा
      MainWindowBackground = #191919
      FixedPageUI [
      TextColor = #282828
      BackgroundColor = #ebdbb2
      SelectionColor = #2d938f
      ...
      अब तक मैं AutoHotkey से SumatraPDF-settings.txt overwrite करके अलग-अलग modes के बीच switch करता था। छोटा script share करना चाहता हूं, लेकिन कुछ समय पहले अचानक टूट गया
    • dark mode और keyboard tab switching सबसे अच्छे lightweight PDF reader में बेहतरीन additions हैं
    • printing से जुड़े issues ठीक हुए या नहीं, यह जानने की उत्सुकता है। इसी वजह से मुझे हमेशा कोई और PDF viewer इस्तेमाल करना पड़ा
  • जैसा दूसरे लोगों ने कहा, Sumatra उन गिने-चुने Windows-only utilities में से एक है जिसकी Mac या Linux इस्तेमाल करते समय हमेशा कमी महसूस होती है। खासकर schematics, mechanical/technical drawings और datasheets देखते समय रोज़ जिन दो बेहद साधारण operations की याद आती है, वे हैं
    Alt + scroll से zoom in/out, right click + drag से pan/move। सोचता हूँ कि क्या Mac या Linux पर कोई viewer है जो ये दोनों features देता हो। Mac का Skim Option + scroll और left click + drag move support करता है, लेकिन इसे किसी दूसरी key या mouse button पर reset नहीं किया जा सकता

    • Linux में Zathura यह support करता है। फर्क यह है कि zoom in/out Alt के बजाय Ctrl से होता है। Right click drag move की तरह काम करता है
      एक feature जो मुझे बहुत पसंद है, वह है कि Page Down अगले page के बिल्कुल top पर ले जाता है। जब zoom level page size से ठीक fit नहीं होता और जल्दी-जल्दी skim करना हो, तो यह बहुत practical है
    • Okular मुझे बहुत पसंद है। खासकर वह theme जो dark red background और yellow text के साथ PDF पढ़ने देती है। लेकिन Apple Silicon Mac Mini पर मैं इसे चला नहीं पाया। लगता है latest Mac के लिए brew formula टूटा हुआ है
    • Foxit में Ctrl+scroll से zoom in/out और left click+drag से move होता है। यह Mac पर चलता है और Linux पर भी शायद चलेगा
      शायद यह काफी हद तक मिलता-जुलता है। अगर सच में ज़ोर लगाना चाहें, तो app-specific keyboard emulation और input remapping on the fly करने वाले shareware apps मिल ही जाएंगे
      https://www.keyboardmaestro.com/main/ को मैं standard solution मानता हूँ
    • मैं qpdfview इस्तेमाल कर रहा हूँ और उससे बहुत संतुष्ट हूँ। इसमें बहुत customization संभव है
    • शायद Skim foreground में हो तभी Karabiner Elements और BetterTouchTool से उस input को remap किया जा सकता है
  • SumatraPDF में एक बहुत सुविधाजनक बात यह है कि अगर सामान्य image file बदलती है तो यह उसे अपने-आप फिर से load कर लेता है। इसलिए image file save करने के तरीके से window के अंदर graphical output दिखाना आसान हो जाता है

    • सिर्फ images ही नहीं, पूरा PDF भी ऐसा ही करता है। काम में मैं PDF generation करता हूँ, और refresh command चलाने के खत्म होते ही changes तुरंत दिखना शानदार है
    • command line से selected printer पर PDF भेज पाना भी बहुत convenient है। कम-से-कम Windows पर यह एक killer feature है
  • मुझे SumatraPDF सच में बहुत पसंद है। कई सालों से इस्तेमाल कर रहा हूँ और यह शानदार है। vim में LaTeX लिखते हुए document को Sumatra में side-by-side open रखकर compile करने पर यह तुरंत refresh हो जाता है
    page तुरंत reload होने से workflow बहुत smooth हो जाता है

    • सही। lervag को भी credit देना चाहिए। उनका vimtex plugin कमाल का है
      काफी संभावना है कि वही इस्तेमाल हो रहा होगा। यह Sumatra के साथ default रूप से integrate होता है, और MuPDF तथा Skim वगैरह के साथ भी integrate होता है। यही बात अच्छी है
    • Evince भी यह feature support करता है। मेरे हिसाब से यह पूरी तरह essential feature है
      Linux पर जाने से पहले Sumatra थोड़ा इस्तेमाल किया था; वह काफी अच्छा और snappy था
    • Atril भी अपने-आप reload करता है
  • PhD के दौरान manuscripts और papers लिखते समय PDF changes real time में देखने के लिए Sumatra PDF मेरा main tool था। Acrobat paid version और Foxit free version में features ज़्यादा हैं, लेकिन वे बदल रही file को lock कर देते हैं

    • यह एक अच्छा example है कि जब अनावश्यक restriction implement करते समय ठीक से नहीं सोचा जाता कि वह users को कैसे बाधित करेगा, तो वह product को नुकसान पहुँचा सकता है। उम्मीद है Android पर यही काम करने वाले software, जैसे SafetyNet या screenshot prevention, भी Acrobat Reader की तरह बेअसर हो जाएँगे