Sumatra, alongside maybe Everything and IrfanView, is my favorite piece of software on windows. Incredible speed, great customizability and awesome compatibility.
I really missed it when I made the switch to Linux, but not enough to consider installing WINE. Still, absolutely wonderful project deserving of the highest praise.
Big kudos to the author for not getting sucked into the Electron Maelstrom. I find it so interesting that fancy MVU style Elm web UI event loops etc. all just reinvent the message loop that Windows has used since Win95.
My PDF journey went from Adobe to Foxit to Firefox to SumatraPDF to Okular.
I chose Okular over SumatraPDF because it does form fills and saves said form fill data to a new PDF. (Sumatra may do form fills now, IDK)
I never would have tried Ocular if I wasn't on Fedora KDE, Sumatra was good enough, and I just fell back to FF when I had to do form fills (then print via CutePDF).
Now that Okular is just a 'choco install okular' away from having it on Windows as well as Linux, I get application consistency, form-fills that save modified PDF files, and annotation stuff.
Paint.NET is great, too. It's not open source, unfortunately (for valid if regrettable reasons), but it's free as in free beer. The memory of its GUI makes me sigh a little whenever I open GIMP.
I use photopea.com. It's a Photoshop clone but loads much faster and works great for when you don't need some of the newest / cutting edge PS features and don't work with large files.
> Initially, Paint.net was released under a modified version of the MIT License, with the exclusion of the installer, text, and graphics. It was completely open-source, but because breaches of license, all resource files (such as interface text and icons) were released under a non-free Creative Commons license forbidding modification, and the installer was made closed-source. Version 3.36 was initially released as partial open-source, but Brewster later took down the source code, citing problems with plagiarism. In version 3.5, paint.net became proprietary software. Users are now prohibited from modifying it.[1]
Paint.NET was open source, but a pirate would download the code, put their name over the author’s, and click build. That’s a very clear case of copyright violation, but the author decided it wasn’t worth the effort (especially if the pirate is in another country).
TL;DR They used a MIT licence and other people were selling broken, rebranded cashgrab copies without changing things like the installer or crash logs being sent to the author etc
It's more than frustrating to have crash logs that don't refer to your code and contain access tokens or similar data because the author of the 'rebranded' software doesn't care about user privacy.
Apparently the author was unhappy with someone re-releasing the software while erasing the original credits (multiple times?): <https://stackoverflow.com/a/1693549>. Not sure why hiding the source code would help much, but oh well.
There really is an abundance of high quality, and performant open-source applications on Windows. Among the three you've listed, I can also mention Notepad++, JPEGView, MPC-HC, Scoop.sh, and ShareX.
Agreed. And it's written in the native Win32 API. I personally find native Win32 apps much more usable with better UI/UX than most "modern" frameworks.
I love Sumatra too. I dislike there is no dark mode so I just used inverted colors and it has worked well. Super lightweight and simple. Unlike adobe which is bloated, slow, and annoying.
FSearch is intended to be an alternative to Everything. However it doesn't have feature parity (and probably won't ever have due to some platform limitations on Linux). Disclaimer: I'm the author of FSearch.
I also like to use fzf a lot, which is an amazing search utility (not only for finding files) for the terminal.
Not the poster but in brief using wine for your workflow implies that between version n and n+1 something may stop working potentially with a workaround or potentially forever. It's also styled funny compared to native apps.
Nothing wrong with it, I just think it's too much stuff to have on my system for a single program. And it introduces new kinds of vulnerabilities that I don't care for.
It's amazing to see the drive of "I know what I want to make and I do it the way I want" carry the project for so long. More than any development ideology just having the passion to continue working on whatever it is you're doing is an extremely powerful force for creating useful software. And SumatraPDF is definitely useful software, has been for a long time.
"ideology doesn't matter as much as doing" being said the syntax valid semantic invalid error at the end of this excerpt in the section on extensive tests being overrated gave me a chuckle:
> Dogma is powerful. Sometimes in my corporate life I felt like writing tests was just going through motion. Maybe we should spend more time writing code instead, I though?
In all seriousness I agree though. In a project where you write the majority of the code it is possible to overdo tests in a way that you are wasting more time than you're saving yourself and in a passion project efficiency isn't always as important as interest anyways.
I registered a HN account just to comment on this. Thank you so much for writing this small yet powerful software. I used it in grad school when I needed to write paper with latex and compile it with pdflatex. 2 features are killers:
1. auto reload the newly generated pdf.
2. double click on pdf and it jumps to the corresponding place in the tex file.
It was such an productivity booster.
Thank you!
This app has gotten me through so many days of undergrad. It's one of the only windows apps that can handle textbook-sized pdfs well. I can search on text quickly too, while Adobe Reader can barely open any PDF larger than 100 pages.
I have been using SumatraPDF on Windows for a long time. After opening a PDF file with it for the first time, I never went back to Adobe Reader. SumatraPDF is much faster, cleaner and less memory hungry.
Other readers likely have this feature, but one I love is that you can re-generate the PDF out from under it and it reloads the new content. As someone writing in LaTeX on emacs and constantly re-generating the PDF, this is very helpful.
Yes! I often write LaTeX in vim under WSL with this setup and it works pleasantly. VimTeX re-compiles whenever I save the document, launches SumatraPDF on the first compilation, and SumatraPDF hot-reloads it without any extra effort on my part. I'm pleased to see a native Windows program and VimTeX under WSL interoperate so well.
My comment is bound to be redundant in this thread, but so have I. SumatraPDF is an excellent piece of software that has made life for countless people easier and without them having to pay anything in exchange.
It's as simple as it gets (with a UI), it's fast, robust and reliable. I wish governments would set aside some generous budgets for this type of projects that are consistently useful and reliable, like they do for arts and education (well, some governments).
It's very noticeably slower and computationally intensive compared to Sumatra (or Okular) with larger files like 1000-page long reference manuals as well as massive textbooks, both of which I frequently use. On web browsers, it generally takes a whole few seconds to load if you scroll quickly past a few pages.
I guess if you don't need to jump around in big pdfs, Firefox viewer is perfectly fine.
tried it for some time, but quickly moved away since it had problems with rendering, comments and I need to highlight and annotate PDFs, also ocasionally I sign there documents with my transparent GIF signature, I don't think sumatra can do any of these
but I am adobe hater, didn't use their software for decades, now I am using for years Foxit reader
> comments and I need to highlight and annotate PDFs, also ocasionally I sign there documents with my transparent GIF signature, I don't think sumatra can do any of these
Upvoted for a number of interesting and unconventional opinions.
Rolling your own JSON, XML, etc parsers raises some eyebrows. I guess it's sort of okay if you expect to only be reading your local config files versus arbitrary web content. Maybe then it's okay to trade off raw speed for not handing a ton of formatting and syntax edge cases.
Writing GUI apps against the native framework. Yup, it'll be a major pain to ever port to another platform. But if you don't care to do that, nothing's as fast and clean both to develop and for the end-user to use as every platform's native framework.
Unit tests are sometimes overrated. IMO, they're much more suited to building apps in dynamic languages. Unit tests are a lot less important if you have a good type system and compiler checking things already. I've heard it described before that half of the benefit of unit testing in these languages is forcing yourself to structure code in testable modules with clean interfaces. But if you can just do that anyways, the actual tests are less important.
I think writing a JSON parser should be perfectly fine, it's quite a simple format (while imperfect and probably way overused). I would say 50 lines of header + 500 lines of .cpp file should be plenty to write a solid reusable implementation that parses to a generic tree (dicts, lists, float/string/bool literals). Should be doable in an afternoon.
But if you disagree, you should try a particular, very popular JSON library for C++ (removed the mention of the name here, you can figure it out on your own if you want).
Last I checked, a git clone of this library downloaded 260 Megabytes of data. The project consists of many many files, but most notably it is a C++ header-only library consisting of 24000 lines of header files to be included into every (transitively) dependent .cpp file.
When you run "g++ -E" on it (to do the preprocessing step only) those 24000 lines will unfold to about 84000 lines.
Just write a short test.cpp with #include <THIS JSON LIBRARY.h> in it and add a int main() { printf("Hello, world\n"); }. Compiling this with "g++ -c" takes about 1 sec on my laptop.
Add a tiny amount of code that "parses" the string literal "3" (which I think is not valid JSON actually. But anyway) and compile + link. Takes 2 secs on my laptop. With -O2, I'm at 3.5 seconds.
Imagine writing a larger project with many many .cpp file that include a header file that publishes such a dependency.
Or just imagine compiling a project where multiple .cpp files directly include this thing.
Regarding the XML thing the author did mention later how complex a compliant parser is, so presumably tests have been… done. The “HTML/” before the XML is what really raised my eyebrows with the stuff, since not many people besides browsers implement the optional tag and tag soup recovery right. (At least it’s standardized in the spec now.)
Alright, looks like the self-brewed parser is explicitly for CHM HTML4 and EPUB XHTML only, with the more serious stuff in muPDF. I could still mess with it by self-packing CHM (HTML4 has optional tags for ergonomics too), but that sounds very boring.
I think "spirit of SumatraPDF" means that he wouldn't npm install 800K lines of code into his project 5 minutes after creating it.
I look at the speed and efficiency of VSCode and it gives me hope that it's possible to write the high quality programs that we're used to from C/C++ using web technologies. It's just that right now we don't have enough good programmers creating good programs to incentivize the others to do better.
VS Code is neither fast nor efficient. I'm not hating on it as I like it more than most Electron apps, but I use it on a laptop with a Core 2 Duo P8600 CPU (among other things) and it's pretty sluggish.
I don't know that VSCode is a great example. I just started it and SublimeText and VSCode takes an order of magnitude more memory. If I watch the Task Manager as I type into each, VSCode also uses about 10x as much CPU which translates into worse battery consumption.
SumatraPDF is my absolutely favourite PDF reader, but I wish the author took security more seriously. At least for a long while there were no official releases for months, if not years, with known crashes in muPDF (for which I think known exploits and patches existed), but since SumatraPDF used a custom muPDF version, it required manual patching. Maybe things are better these days (I see updates are more frequent again), but with PDFs being a big attack vectors these days, it leaves a bit of a sour aftertaste.
When I open PDFs I often want to edit the filename to adjust it to the content. SumatraPDF is awesome and opposed to Adobe Reader and other PDF readers it does not take an exclusive lock on the PDF file so you can edit its filename.
The fact that it is extremely fast is another big benefit.
I sometimes work with Paged Media CSS, I’ll often need to generate a file multiple times after editing the CSS to see if it accomplished what I wanted. With Sumatra PDF it instantly updates the file when the new version is generated, it’s awesome.
Sumatra is pretty nice, and definitely an app I miss on Linux. I used to use evince, but it had more compatibility issues (it uses the Poppler library that Sumatra dropped) and I wasn't a fan of the UI redesigns for Gnome 3.
These days I actually use Firefox as my Linux PDF reader.
One of the pains of moving from windows to a Mac was not having Sumatra. I've been using it on Windows for so long. I have tried many options on Mac, but they just doesn't feel "right" (too many options in viewers like Acrobat, too less features compared to Sumatra in others). Any plans to create a mac version?
In fairness, acrobat is a full fledged editor of a hacked file format. My Acrobat Reader DC install is sitting st 384 MB and Sumatra is at 18.7 MB; only a factor of 20 larger. :)
Not that it justifies 2.4 GB but the products are very different. One is read only while the other is everything you could ever imagine wanting to do with a PDF. e.g. Infranview is expected to be significantly smaller than GIMP too.
For the most part that's perfect though. 99% of the time I just want to read a PDF so I just use the PDF reading tool not the PDF everything tool. That being said signing/form filling does bring me back to other solutions occasionally.
Just want to come to give props to Sumatra PDF. Lovely product - lightweight, fast, portable. Mau not have every feature (not saying it does or doesn't - does what I need) but does a lot really well. Highly recommended.
I just downloaded it and I'm quite impressed with the ease of use of the color options. Just a few lines in a text file. I can swap between dark and light modes easily.
Does anyone know if the window background can be darkened at all? The window UI text color is controlled by the same setting as the pdf text color, so when using a dark background/light text mode the window UI text is very low contrast.
> I just downloaded it and I'm quite impressed with the ease of use of the color options. Just a few lines in a text file. I can swap between dark and light modes easily.
Not just that, but you can change the settings file while the reader is open and it will update immediately. I use a one-line cmd script to switch quickly between light and dark.
I used Sumatra on a very old Windows laptop a decade ago, and became a fan because it was so lightweight that it rendered documents quickly, even on outdated hardware.
Does anyone know why it's never possible to just transfer money, but they ask for patreon or paypal? I live in the EU and as far as I know its super cheap to send money into a bank account. At least cheaper than what I suppose is patreon's cut.
Because in the U.S. we don't really have a standardized way to transfer money to another bank account, at least not without knowing their bank routing number and account number, which isn't really information you want to share :)
Sorry this may be an obvious thing but I am genuinely curious (and I don't live in the US): why would one be afraid of sharing those?
It's not like they're your credit card details or something. What am I missing?
Because the same two numbers (routing and account) are used to deposit money AND debit money.
So if you post your account numbers I can pull all your money out. Now you'll likely get it back if you file a fraud claim, but that's an extra Hassel, and your out finds until they give you a provisional credit.
It's also why Donald Knuth doesn't hand out real cheques anymore… too many people (me included, but I later blackened those parts) posted pictures of their cheques online: https://www-cs-faculty.stanford.edu/~knuth/news08.html
That can't be right. Im a European living in Hong Kong, both places, widely different you'll admit (HK still doesn't have frigging IBANs), I can give you here my account number, you'd be able to do NOTHING with it, nothing but GIVE me money.
To withdraw in both continent you'd need a pin or a signature + a tamper-proof ID card. The web app in Hong Kong has 2 passwords + 2 private key phone checks + insta SMS sent on any output. My French bank resets the private key every 3 months and require a strong re-auth (SMS or postal mail).
To direct debit, in HK you can only trigger it from the source account by registering the target online, it can't be done the other way around, while in France you need a signed authorization - but I suppose that can be faked if you have a target entity already registered and fake signatures to a bank.
And you're telling me in the US I know your target bank account to wire you pocket money at your birthday, I can also just withdraw ? That can't be right sorry.
>And you're telling me in the US I know your target bank account to wire you pocket money at your birthday, I can also just withdraw ? That can't be right sorry.
Here in the UK while it's super easy to set up a fraudulent direct debit on someone else's account details, it's equally easy to claim those payments back (and the scheme guarantees you the right to be able to claim a payment back for any reason, doesn't even have to be fraud - the merchant can of course still chase you if you've declined a legitimate payment you owe them).
Yes — and it doesn't require anything more than a typo. Whether or not the banks will reimburse it will depend on the bank and whether the money has already moved from the target account. It's never fast but I've heard at least a few stories about complete nightmares where the bank was essentially accusing the victim of fraud despite having utterly failed to protect their customer.
well its the same in europe but its not that this is happening. the information (IBAN) you need to wire money via SEPA transfer can also be used to fake an automated SEPA debit system for subscriptions.
E V E R Y german company has their SEPA information on almost every piece of writing that leaves the company (in the footer) and thus far i think widespread misuse/fraud is not really a thing.
The debit system for sub here in HK is only possible on the user side. You can't automate it like in Europe, the dude has to go to his own account and register it himself with the company's target account.
But what you say must be impossible in SEPA too - to fake a sub registration you'd have to register with a corporation ID as a subscription receiver in the SEPA area. I'd suppose at least you fraud one person you're immediately found. But it's also that you probably can't even register without at least a sort of reputation check.
I moved to Canada recently and here we have something called Interac e-transfer — you can send anyone money using only their phone number or email address. I’m not sure why the U.S. is so behind in that regard.
Despite getting free transfers (UK), I prefer middlemen.
I've had one transfer via Revolut, it was significantly more effort than I'd expected, but I'd do it again if explicitly asked for.
General security advice is to not share your bank details. I'd rather take the hit from PayPal fees or someone not donating rather than worrying about fraud. [0] for example.
Patreon (etc..) is recurring revenue, which builds confidence that what you're doing is sustainable long-term. When an OSS project opens for donations, it typically has an established userbase. The first "ask" will bring a comparatively large amount of money compared to the next "ask", and it raises the question of whether one-time donations will dwindle to zero. Recurring revenue hedges against that (and also allows more community building).
For me, it puts a comfortable professional distance between public projects and real accounts, and it reduces friction on pseudonymous and international payments.
Banks and credit unions in the US usually have a bill pay system to send checks or e-checks for free. Some people do use it to contribute to projects, sometimes even as a recurring donation, but it's rare. I'm not sure it would be so cheap if it weren't rare.
People in the US use either Paypal or Zelle for personal transfers. Zelle is a standard that's supported by most US banks. Otherwise, Paypal. But Patreon even though they take a cut is used more because it's easy to give people exclusive benefits.
Right now I'm paying $15 a month for primarily the privilege of editing PDFs. It seems every time I switch jobs, or have to send some documents, I need Adobe PDF writer.
Any chance it'll use subpixel smoothing one day? Grayscale smoothing makes me want to tear my eyes out. It's the main thing that prevents me from ever switching.
I see comments like this sometimes and wonder if people are born with super eyes or something and I missed out. I only notice the difference between the various HD standards and standard def if they're put right next to each other, don't even bother owning a monitor with >1920x1080, etc.
I promise you it's just as baffling to me that some people don't notice it! It seems clear as day to me and I don't even have great eyesight. Maybe it's something like font kerning where it's hard to notice but also hard to un-notice?
Here's an example, can you not see the difference in sharpness clearly?
(NOTE: Make sure you're viewing just the unscaled image by itself. You can download each and view it in a 1:1 pixel viewer to sure your browser isn't scaling it. Or run document.body.style.zoom = 1 / window.devicePixelRatio in Chrome.)
If I flip between them I can see a difference, yes, but it doesn't exactly make my eyes bleed. Opened up a random PDF in Sumatra without something to compare it to and, now having seen it, still nothing jumps out. Then again, I grew up with bitmapped fonts in 320x200 on a CRT.
I still install Sumatra PDF on every Windows PC I have to work on. It's a habit I've kept from the days when Acrobat Reader took like 30 seconds to start.
long time user of SumatraPDF, this was a good read.
> Let's say I need to do a network request. I could include a monster library like curl or I could write 300 lines of code using win32 APIs. I wrote 300 lines of code.
huh, reminds me of tangent I have been in the same exact boat and did the same. Then something came up with SSL and just dragged in curl and doubled executable size. I think things are better these days in WinHTTP..
I really missed it when I made the switch to Linux, but not enough to consider installing WINE. Still, absolutely wonderful project deserving of the highest praise.