Most active commenters
  • me-vs-cat(5)
  • theamk(4)
  • protocolture(3)
  • iLemming(3)

←back to thread

357 points ingve | 30 comments | | HN request time: 2.306s | source | bottom
Show context
90s_dev ◴[] No.43975996[source]
Have any of you ever thought to yourself, this is new and interesting, and then vaguely remembered that you spent months or years becoming an expert at it earlier in life but entirely forgot it? And in fact large chunks of the very interesting things you've done just completely flew out of your mind long ago, to the point where you feel absolutely new at life, like you've accomplished relatively nothing, until something like this jars you out of that forgetfulness?

I definitely vaguely remember doing some incredibly cool things with PDFs and OCR about 6 or 7 years ago. Some project comes to mind... google tells me it was "tesseract" and that sounds familiar.

replies(10): >>43976023 #>>43976086 #>>43976796 #>>43977155 #>>43977580 #>>43977605 #>>43978171 #>>43979324 #>>43980118 #>>43981115 #
hallman76 ◴[] No.43980118[source]
We will never get back the collective man-decades of time that has been burned by this format. When will the madness stop?
replies(3): >>43980258 #>>43980692 #>>43984513 #
1. theamk ◴[] No.43980258[source]
When we get an alternative that can:

(1) be stored in a single file

(2) Allow tables, images and anything else that can be shown on a piece paper

(3) Won't have animation, fold-out text, or anything that cannot be be shown on a piece of paper

(4) won't require Javascript or access to external sites

that means never.. We've got lucky we at least got PDF before "web designers" made (3) impossible, and marketers made (4) impossible

replies(7): >>43980448 #>>43980591 #>>43981173 #>>43981225 #>>43981712 #>>43982818 #>>43984377 #
2. coderatlarge ◴[] No.43980448[source]
dvi ?

https://en.m.wikipedia.org/wiki/Device_independent_file_form...

replies(2): >>43980715 #>>43982030 #
3. protocolture ◴[] No.43980591[source]
Behold a Bitmap.

But for real, thats a pretty easy set of hurdles. Really the barrier is the psychological fallacy that PDF's are immutable.

replies(1): >>43980708 #
4. theamk ◴[] No.43980708[source]
Should have added "looks good on screen and on paper", "stores text compactly" and "multiple pages supported" :) And yes, that's a pretty easy set of hurdles. I wish we'd standardized on DjVu instead.

Re "PDF's are immutable." - that's not a psychological fallacy, that's a primary advantage of PDFs. If I wanted mutable format, I'd take an odt (or rtf or a doc). "Output only" format allows one to use the very latest version of editor app, while having the result working even in ancient readers, something very desirable in many contexts.

replies(4): >>43980842 #>>43982603 #>>43982758 #>>43986015 #
5. theamk ◴[] No.43980715[source]
> For a DVI file to be printed or even properly previewed, the fonts it references must be already installed.

If you want alternatives, I'd choose DjVu. But it's too late now, everyone is converged on PDFs, and the alternatives are not good enough to warrant the switch.

6. protocolture ◴[] No.43980842{3}[source]
Word can edit pretty much any pdf these days, the issue is that it will often garble the attempt.
7. dqv ◴[] No.43981173[source]
> (3) Won't have animation, fold-out text, or anything that cannot be be shown on a piece of paper

> (4) won't require Javascript or access to external sites

So about that... https://opensource.adobe.com/dc-acrobat-sdk-docs/library/jsa...

replies(3): >>43982954 #>>43984064 #>>43998265 #
8. gpvos ◴[] No.43981225[source]
Postscript fits that bill better.
9. numpad0 ◴[] No.43981712[source]
(-1) be vector format that never gets pixelated

(0) that reproduce everywhere on any OS perfectly

(0.5) that supports (everything) any typographical engineers ever wanted past and future

Bitmap formats are out from clause -1, Office file formats disqualify from clause 0, Markdown doesn't satisfy clause 0.5. Otherwise a Word .doc format covers most of clauses 1-4.

replies(1): >>43982024 #
10. Timwi ◴[] No.43982024[source]
> (0) that reproduce everywhere on any OS perfectly

Can somebody explain why this isn't the case for HTML? I'm frequently in a situation where a website that mimics printed pages fails to render the same between Firefox and Chrome. I wish to understand the primary culprit here. I thought all of the CSS units are completely defined?

replies(2): >>43982761 #>>43983569 #
11. drfuchs ◴[] No.43982030[source]
DVI isn’t suitable as you’d still have to intuit where the paragraph- and even word-breaks are; what’s body text vs. headers/footers, sidebars, captions, etc; never mind what math expression a particular jumble of characters and rules came from.
12. imtringued ◴[] No.43982603{3}[source]
PDFs are not really immutable. I use Okular all the time to write my "notes" (it's just text that you can place anywhere) on top of a PDF form and then print out a new completely filled out PDF. The only thing I do by hand is sign the physical paper.
replies(1): >>43991100 #
13. harshreality ◴[] No.43982758{3}[source]
What's immutable, without tools to decompress and possibly perform further de-obfuscation of text streams, is the typical way publishing software encodes text into streams inside PDFs.

It remains possible to have a pdf with text that is easily mutable with any text editor.

Even if text inside a pdf is annoyingly encoded, you can always just replace the appropriate object/text streams... if you can identify the right one(s). You can extract and edit and re-insert, or simply replace, embedded images as well.

I don't think "this format promotes, as the norm, so much obfuscation of basic text objects that it becomes impractical to edit them in situ without wholesale replacement" is the win you think it is.

"Looks good on paper" has to do with the rendering engine (largely high-DPI and good font handling/spacing/kerning), not PDF as a content layout/presentation format. A high-quality software rasterizer (for postscript or PDF, often embedded in the printer)—not the PDF file format—has been the magic sauce.

Today, some large portion of end-user interaction with PDFs is via rendering into a web browser DOM via javascript. Text in PDFs is rendered as text in the browser. Perhaps nothing else demonstrates more clearly that the "PDF is superior" argument is invalid.

replies(1): >>43986093 #
14. djxfade ◴[] No.43982761{3}[source]
Probably due to different font rendering in the OS.
15. ninalanyon ◴[] No.43982818[source]
A subset of HTML and CSS surely does that to a large degree. Data urls solve the single file problem.
16. lmz ◴[] No.43982954[source]
Also: https://pdfa.org/3d-pdf-showcase/
17. scajanus ◴[] No.43983569{3}[source]
I think this is the result of 1) it being a moving target and 2) HTML and CSS being a de facto standard rather than de jure, where the (differing) implementations define at least part of the spec.

You also can't really embed fonts in a HTML file, you rely on linking instead -- and those can rot. Apparently there has been some work towards it (base64 encoded), but support may vary. And you need to embed the whole font, I don't think you can do character subsets easily.

18. izacus ◴[] No.43984064[source]
Did you miss the meaning of the word "require"?
19. majora2007 ◴[] No.43984377[source]
Why can't this be done with epub? Single file, all files are packed within the zip, no javascript needed but can be included. Allows for markup and forms, just like pdf.
replies(1): >>43987318 #
20. me-vs-cat ◴[] No.43986015{3}[source]
PDFs are not immutable.
21. me-vs-cat ◴[] No.43986093{4}[source]
> you can always just replace the appropriate object/text streams

Or right-click and select Edit. Works in several PDF editors, on both text and image content.

22. currency ◴[] No.43987318[source]
EPub is, like html, reformattable by the reader, so documents aren't fixed in the way PDFs are.
23. iLemming ◴[] No.43991100{4}[source]
Your understanding of immutability feels skewed here. Every time you annotate the PDF, it creates a new version. Even when you overwrite the same file, the structure of the original document changes, therefore creating a new document, ultimately making it "the ship of Theseus.pdf"

Sure, someone may try using the same argument, applying it to .doc and .txt documents, yet there is a general consensus saying that pdfs were designed to "resist the change". You can probably self-illustrate the point by making changes to a .txt document and then removing your changes - the md5 of the file would remain the same.

replies(1): >>44000833 #
24. theamk ◴[] No.43998265[source]
that's the power of legacy. Adobe may think they can add junk to PDF like Javascript support, or lmz's "3D PDF" link below, but since PDFs viewers have a diverse ecosystem, those features won't have a great adoption.

And this is actually pretty great, maybe even the best part of PDFs! Companies _know_ that publishing PDF that require 3d-graphics or Javascript means many people won't be able to see them, so they publish good, static PDFs, maintaining virtuous cycle.

25. me-vs-cat ◴[] No.44000833{5}[source]
Have you ever used Acrobat? Not "Acrobat Reader", but regular Acrobat, the most popular PDF editor. It's from Adobe, and it definitely does not "resist" edits.
replies(1): >>44001063 #
26. iLemming ◴[] No.44001063{6}[source]
I got what you're saying the first time, and you still seem to be entirely missing the point. Immutability means that an object cannot be modified after it's created, and any changes result in a new object rather than altering the original.

You're saying "well, look, I can modify this pdf and I can even undo my changes...", what I'm saying is that whenever you modify a PDF, you're essentially creating a new file rather than truly "undoing" changes in the original. PDFs have complex internal structures with metadata, object references, and possibly compression that make bit-perfect restoration challenging.

Unlike plain text files where changes can be precisely tracked and reversed at the character level, PDFs don't easily support this kind of granular reversibility. Even "undoing" in PDF editors often means generating yet another variant rather than returning to the exact binary state of the original.

Take a look at how Git stores PDFs - when the delta approach doesn't work efficiently since even small logical changes can result in significantly different binary files with completely different checksums, it stores EVERY version of the same document in a separate blob object.

When you annotate a pdf and then later change your mind, undo all the annotations and save it — only to your eyes it may look the same as the original — in digital reality, it will be a different file.

replies(2): >>44001184 #>>44010198 #
27. protocolture ◴[] No.44001184{7}[source]
The people who act as if PDFs are legally immutable are not performing MD5 comparisons.

Also, that isnt even an intention of the file format as far as I can see, its mostly a byproduct of cruft and backwards compatibility.

No one would call .doc immutable because its very difficult to move an image and then restore that image to the original location.

In this context, people will save something out as pdf and store it because they dont think it cannot be modified.

But as has been rightly pointed out, thats not the case.

replies(1): >>44001307 #
28. iLemming ◴[] No.44001307{8}[source]
I feel like I'm talking to a toddler, sigh. Let me try again.

Immutability doesn't mean that an "object cannot be modified", it means that in order to modify an object, you must create a new (clone) object. That's all what I meant to say. Sure, you can get pedantic or otherwise and say "yes, pdfs are immutable; or no, pdfs aren't immutable in some contexts", etc., and depending on the point of view, both of these claims could be correct — I'm not arguing about the specifics.

I'm just saying that your explanation of why you think pdfs are not immutable hinges on an incorrect idea of what immutability actually is.

There's a rigorous definition for "immutability" in computer science, e.g., strings in many programming languages are immutable, but that doesn't mean you can't manipulate them, it just means that operations that appear to modify strings actually create new string objects.

The greatest illustration for immutability is imbued in programming languages with immutability-by-default, e.g., Clojure. Once someone groks the basics, it becomes really clear what that thing is about.

replies(1): >>44010138 #
29. me-vs-cat ◴[] No.44010138{9}[source]
> I feel like I'm talking to a toddler, sigh.

Me too, but I'm done. Have fun!

30. me-vs-cat ◴[] No.44010198{7}[source]
> I got what you're saying the first time,

That wasn't me. Multiple people were taking the time to help you understand.