• rumba ( rumba@lemmy.zip ) 
    link
    fedilink
    English
    arrow-up
    4
    ·
    2 hours ago

    To print, these days, you generate PostScript and fire that off to the printer.

    PostScript -> PDF is a very light translation.

    The biggest slight is not renaming print to Print/PDF and just shortcutting the same exact code.

    • History of PDF is basically: We need a standard format to get print jobs over there > Postscript > let’s add feature X > also feature y > make it do thing too! > uh oh, it’s gotten too powerful, security galore > reboot and slim it down > PDF > let’s add feature X > also feature y > …

    • Hundun ( Hundun@beehaw.org ) 
      link
      fedilink
      arrow-up
      10
      ·
      6 hours ago

      Personally, I think in dealing with text documents, we should only respect:

      • Markdown
      • Org
      • Wikidot
      • LaTeX
      • Typst if you are a progressive zoomer

      Everything else is mental illness.

      • Laser ( Laser@feddit.org ) 
        link
        fedilink
        arrow-up
        2
        ·
        2 hours ago

        Typst if you are a progressive zoomer

        I’m a millenial (maybe even an older one but I won’t admit to that) and I just love typst.

        Markdown is just content, but as soon as you want actual layouting, you’re in for trouble; sure you can post-process in pandoc and apply the result to some template, but you’re probably creating an abomination in the process. Oh, and I hate creating slightly bigger tables there. One of your columns got larger? Better adjust all your horizontal lines (at least for grid tables), which might be a pandoc markdown only feature. Yeah, there isn’t one single markdown, but multiple flavors: https://www.glukhov.org/documentation-tools/markdown/gfm-vs-commonmark-vs-pandoc-markdown/

        LaTeX? Probably still the king of exact typesetting, but it has a lot of issues:

        • compile times are really bad (especially with something like lualatex)
        • TeX which is the foundation of LaTeX maybe isn’t how you’d design such a language today
          • this includes error messages that aren’t helpful if you didn’t study CS and typesetting
        • tables (though BIG THANKS to that brave soul who wrote tabularray, it saved my sanity in my last LaTeX project)

        Though at least nowadays, you have options for creating accessible PDFs (I’m not a big fan of the idea myself, but there are environments where that support is mandatory, e.g. government contracting)

        typst? I wrote my first bigger project in typst that did much more than I could ever do in LaTeX (generation of documentation from OpenAPI spec files) and I had way fewer issues than for LaTeX projects of lower complexity. Yeah there are still some areas that need improvement, but all in all it’s a breeze. With tinymist, writing stuff is just so nice, no waiting for your document to compile for 40 seconds, no, you get an instant preview, or a helpful error message.

        I was a bit of a LaTeX guy but I haven’t touched it since I learned typst.

      • Hundun ( Hundun@beehaw.org ) 
        link
        fedilink
        arrow-up
        9
        ·
        6 hours ago

        One could say that PDFs allow unique copy protection features, which is true. However, one mustn’t forget that copy protection is yet to deserve it’s right to exist at all.

      • Laser ( Laser@feddit.org ) 
        link
        fedilink
        arrow-up
        3
        ·
        3 hours ago

        No, that’s not actually the issue. The PDF format is open.

        The actual (non-)issue is that PDF is a format that is not meant to be converted or otherwise be edited. Let’s say you have a page of text with two columns. For a PDF, the concept of columns doesn’t exist. It’s just a series of individual letters placed exactly in a specific location on a page (and other graphical elements I guess, but that’s not the current point). I think strictly speaking PDFs don’t have to use the space character, since PDF doesn’t have the concept of a word, just individually placed letters.

        Readers already have to do some heuristics to allow copying etc. but how are you going to convert this into a word file? How would you detect that there are text columns? What is a page header / footer and what is just fancy repeating letters?

        Note that as soon as you get into more modern PDF, there’s also stuff like accessibility features (big fun!). There is support for Universal 3D.

        Nobody sane would try to write a proper editor for PDF. You only write that if you want to make money off of it because a corporation somewhere doesn’t understand or control the pipeline that created a PDF that they need changed.

  • dan ( dan@upvote.au ) 
    link
    fedilink
    arrow-up
    36
    ·
    edit-2
    9 hours ago

    Strangely, this kinda makes sense. PDF is based on PostScript, which is a file type (also by Adobe) that gets sent to printers. It’s just skipping the final “send to printer” part and sends it to a file instead.

    A fascinating thing (in a scary way) is that PostScript is technically a full programming language with loops, functions, logic, and a built-in font rendering and 2D graphics engine. When a document is printed using PostScript, your computer generates a script to lay out the page, that the printer runs in order to produce the document!

    PDF is essentially “the safe parts” of PostScript - the same 2D graphics engine but with all the dynamic parts removed. PDFs are statically laid out when they’re created, rather than having to run arbitrary code to lay them out like PostScript does.

    PDF does support JavaScript code, but it’s rarely used and needs to be granted permission to run. It’s not a core part of the format.

    For printing, PCL has somewhat taken over and it’s less scary - it just has preset commands rather than allowing arbitrary code in a full programming language. PostScript is still used today for higher-end printers and print jobs though.