Websites Should Be Printable (brennenputh.me)

325 pointsby bagatellea day ago190 comments

beej71 18 hours ago

While I'm on board with having good html structure that prints well, and I'm on board with hiding navigation elements, etc., I'm not so on board with changing the default font size or fonts in the print version.

I just made a simple site that didn't set any font sizes anywhere, and a friend of mine complained that the font was too small on mobile. Do I detect a lo-res screen and increase the font size?

I know a lot of sites do exactly that, but I feel it's wrong. The user controls their default font size on their platform. What if they'd already increased it, and now I'm just making it bigger?

What if they'd decreased their default print font size and then I shrink it again?

I think it's best to leave those to the user entirely.

ximm 18 hours ago

Absolutely, this is accessibility 101.

The one counter argument to this that I would accept is that users don't know about font settings. But the proper solution if for browsers to make it easier those settings rather than every single website having to add font controls.

wombat-man 18 hours ago

I had a professor who asked us to print source code for our projects for him to read. Looks like he's still at it. I'm sure he's being driven insane in these AI times.

batperson 17 hours ago

Wild, did he ask you to use a colored printer for syntax highlighting?

unrented7977 15 hours ago

If your beard is long and gray enough you can do syntax highlighting on the fly

wombat-man 14 hours ago

we only had a black and white printer, I don't think they would spring for color. Also, iirc he had a script he had us run to print it, so it' not like we were printing straight from the editor.

jamesmiller5 5 hours ago

RIP vim `:hardcopy` :( .

For some harder C code (implementing `malloc` for example) my preferred debugging method was printing out the code and debugging it with a pen between classes.

I eventually realized being inside an editor gave me too much attraction to thrash with "just one more quick iteration & debug run..." and could actually end up more time consuming than being forced to reconcile my mental model with what I had already written by me double checking my assumptions.

Interestingly, some of my peers started picking up the habit for their own projects and we ended up having small "debugging" sessions by trading print-outs .

abhgh 4 hours ago

This is interesting. For a while I used to print out code and debug too - more due to resource constraints: didn't own a computer, and my high school's computers were available only for limited hours per day. I used to code my first iteration also on paper - so that in the limited computer use time, I could type in the code quickly and actually see it run. Wild times but I think it made me good at programming. My friend (who did have a computer at home, but lived far away) and I co-wrote a program called "graph generator" that could plot math functions, with me doing my share on paper and giving to him to type in :) This was in the Turbo C++ IDE and since GUI based programs were unusual (at least as a project in highschool - India, 1999) it temporarily made us popular. Well, wow, that was fun to reminisce!

what 5 hours ago

Why would you need color to read and understand code?

aaronbrethorst 4 hours ago

Source code has a structure, and some parts are more important to the reader than others. Good syntax highlighting makes the important parts easier to see; bad highlighting gives all parts the same emphasis. Notionally you could use font weight to convey this in a black and white medium, but color makes this easier.

lelanthran 4 hours ago

I program almost daily with only bold, italics and grey (for comments) in my vim rules for highlighting.

I can read my code just fine.

kccqzy 17 hours ago

You were right and your friend was wrong for not knowing how to increase font sizes on mobile. It’s actually an opportunity to teach them how to change page zoom levels in a browser. (I actually have the opposite problem: many sites make font sizes way too large and I often need to decrease zoom level.)

The only exception is that the layout of your website requires multiple columns so increasing either font size or page zoom doesn’t work well. For example gcc.gnu.org is challenging for a mobile browser if one prefers larger font sizes. You are fine if you aren’t doing that.

phoghed 15 hours ago

Yeah lemme just fuck up my entire experience on the rest of the web and my phone in general to read my friend’s blog

kccqzy 15 hours ago

Browsers remember your zoom settings on a per-site basis. Try using it before claiming it will fuck up the entire experience.

phoghed 15 hours ago

> The user controls their default font size on their platform. What if they'd already increased it, and now I'm just making it bigger?

The person making the site however wanted someone to change their default font size

We have to also consider that the person in question is most likely not having a bad experience on every app and website, and that this guy just had a tiny font size on his site

Even this famously tiny fonted site is readable on mobile

kccqzy 13 hours ago

Most websites regardless of whether they change the browser default font size or not, do not have my preferred font size. It is my responsibility to change my own browser settings to make me have a good experience. Browser makers have made this so easy, it even remembers the setting across visits now.

hahn-kev an hour ago

Looks like in Chrome on mobile you can set it per site, but you need to dig into accessibility for that. I don't see a way to do that in FF, so you would have to set the default which would effect all sites.

danadam 17 hours ago

> I just made a simple site that didn't set any font sizes anywhere, and a friend of mine complained that the font was too small on mobile. Do I detect a lo-res screen and increase the font size?

Did you use

  <meta name="viewport" content="width=device-width, initial-scale=1.0">
That would probably be enough to look good on mobile too.

beej71 17 hours ago

Yes, I did. :)

cycomachead 9 hours ago

While everyone probably should learn something about their devices, the defaults you provide to users should be good ones.

Drawing a line can be hard, but clearly the basic font should be contrast-y enough so that most people can read it, no? The user can control the defaults of many things on their devices, but we shouldn't require them to change settings to have a good experience. We already customize websites a lot.

I think it depends on the goals of the print version, but people spend a lot of time picking fonts and styles so things look good on a screen. I take this as saying you should supply the same type of attention to your print style sheet.

socalgal2 17 minutes ago

Mixed on this. I rarely use a printer. Once or twice a year to print a sign or some government form required to be paper. Maybe you shouldn't encourage printing?

That said, I've gone out of my way to make my sites printable so ...shrug...

pidgeon_lover 19 hours ago

I agree that websites should be printable. I'm a fan of RSS and eInk displays (Kindles, and when I can afford one, a PC monitor), and printable websites would make using them on paper-like displays easier.

I've been using the PrintFriendly [1] browser extension for years (to print otherwise unprintable websites), but it gotten worse, so while looking at alternatives I started with The Printliminator [2] (which uses the Haartija CSS framework [3]) and have currently ended up using CopyAsMarkdown [4] (with Pandoc) and WebToEpub [5]

[1] https://www.printfriendly.com/ [2] https://github.com/CSS-Tricks/The-Printliminator [3] https://github.com/vladocar/Hartija---CSS-Print-Framework [4] https://github.com/yorkxin/copy-as-markdown/ [5] https://github.com/dteviot/WebToEpub

rkagerer 15 hours ago

If a browser can show it on a screen, in fact screens of many sizes, it should be able to render to a printer. With perfect fidelity. It frustrates me to no end this isn't the case.

I posit the reason it sucks is because the Chrome team doesn't care (at least not enough) about the print feature. Firefox is a little better. But I haven't seen decent printing since the days of Internet Explorer.

Some of the most annoying culprits are website terms of service where printing to PDF produces page breaks in places that cut off lines of text.

adrian_b 14 hours ago

Yes, this is also what annoys me most at both Firefox and Chrome, their print commands produces almost always complete garbage, despite the fact that the same pages are rendered perfectly on screen.

For some reason, the print command works much better in the Vivaldi browser. It frequently renders correctly pages that are garbled by Firefox and Chrome. Moreover, its print command also works many times faster. Thus even if I usually browse with Firefox, when I want to save a page I frequently reopen it in Vivaldi, in order to print it from there. Unfortunately, not even Vivaldi does it always perfectly.

It is very annoying that the print command does not work in browsers, because nowadays that is the only reliable way to save a Web page. Saving a page with the "Save" command rarely works, especially when attempting to read the saved page offline, because too many pages rely on scripts to generate the displayed content, and those frequently do not work offline or even just inside local files.

cycomachead 9 hours ago

It's ridiculous this is a problem, and has been for many ages.

I do a lot of teaching, and for many reasons share PDFs of articles in addition to the web pages and URLs. I know how to work around these things, but lots of reasons to print and article and what are normal folks supposed to do? Hell, sometimes I don't even notice until the cut is buried in the middle of the long document...

ButlerianJihad 7 hours ago

Terms of Service and other legalese are notorious for being deliberately difficult to print, copy/paste, or manipulate in any way.

If you click through them, you will often notice that they are squeezed into the most inconvenient popups, modal dialogs, and other interstitial windows that are abused for this purpose. They are also insufferably long-winded.

I often try to capture the text of these so-called "legal agreements". I try to shove them into a "Print to PDF" but that fails. So I try to copy-paste them into Google Keep, but that also fails, because Keep has a limit. So then I try to cram them into Google Docs. And it often takes about 15 sweeps with copy/paste and scroll scroll scroll, in order to meaningfully transfer all the content into Docs.

It may come in handy later; for example they will often include some contact information for their privacy or legal department, and sometimes there are opt-out instructions nestled near the end of the Terms of Service. They may also document the steps of a grievance process. If you, as a customer, do not follow their steps for filing a grievance and pursue it according to their policy, they have no obligation to help you. So, if you are a serious user of any service, or it means serious money to you, I encourage you to paste or print those legal Terms by any means necessary.

Of course, they will invariably change the Terms on a whim and with the slightest notice to you, and the game begins all over again. Strange game. Perhaps the smartest move is not to play?

armcat 20 hours ago

I politely disagree. The original intent Tim Berners Lee had [1] was to create a navigable way of finding documents and information. Not printable. The entire issue we have today is that we have blurred both the navigable and the printable concepts. A website should just be a simple clean space for easily navigating and conveying intended information. To print, we have latex and other markup methods that are perfect for that.

[1] https://info.cern.ch/hypertext/WWW/TheProject.html

criddell 20 hours ago

Don Quixote, is that you?

velcrovan 20 hours ago

I politely disagree. What does Tim Berners Lee’s opinion of anything have to do with anything? What use is Latex when I want a readable hardcopy of a web page?

sevenzero 20 hours ago

Well, I want to retire and not have to work for another 30+ years, but I guess we do not always get what we want :(

gumby 19 hours ago

What a good point! The web would be much nicer looking if browsers accepted pages written in LaTeX as well as pages written in HTML.

After all TeX is all about high quality printing on paper.

tosti 19 hours ago

Browsers already accept PDF. TeX files aren't portable.

yoavm 17 hours ago

Not portable in what way?

tosti 15 hours ago

In the unless-you-bring-the-development-machine-along-with-it kind of way.

SoftTalker 17 hours ago

And as if browsers don't have enough bugs already -- now we include TeX?

gumby 16 hours ago

Don has had the longest-running bug bounty of them all!

bigbuppo 16 hours ago

Exactly. That's why they should handle device independent output.

odo1242 12 hours ago

MathML?

odo1242 14 hours ago

A TeX distribution on my computer (mactex) is like 4 gigabytes. Definitely not "bundle-with-a-web-browser" worthy.

masswerk 20 hours ago

Fun fact: In the early days, website projects were mostly allocated at the top level of an organisation. As top-level officers used to consume the Web in printouts, the print view was also the default customer view and thus of utter importance.

dofm 19 hours ago

Also in my experience, the higher you go in an organisation, the greater the chance of finding an older person of great ability with tired eyes and well-masked dyslexia who just wants to print your thing and go through it with a highlighter and a sharpie, and whose PA just used to always do that for them without anyone finding out.

Even now this is not that uncommon; I have worked with an entrepreneur masking significant dyslexia in just the last five years. Printability was just something he needed so he could properly scrutinise.

Print is still an accessibility thing, I think.

hnlmorg 19 hours ago

The original design of the WWW has morphed a dozen times between what he built and what we have today. And while I don’t love every innovation, there are plenty of things we take for granted today that wasn’t possibly with HTML1, such as banking apps.

So I don’t think there’s much merit arguing about what doesn’t exist any longer.

ozim 19 hours ago

Banking apps are not “websites” by coincidence they happen to be apps using same technology to show the interface but there is huge difference between website and web app.

This distinction is important especially because people are notoriously confusing the two and expect web apps to be like websites and conversely implement websites with tech that is supposed to be used to build web applications bloating internet pipes with JS where HTML and CSS would be sufficient.

hnlmorg 15 hours ago

There is a big difference, one is spelt “website” and the other “web app”.

Beyond that, the distinction is purely arbitrary. Same tech stacks, same delivery methods, and the same client-side display tools.

dofm 19 hours ago

Not a facetious question, but you don't build websites for a living, I think?

This kind of fairly idealistic thinking is so far from the ordinary web development norm that you have to go past "supporting that version of IE with 0.7% market share" to get to it.

armcat 18 hours ago

I used to. Apologies if it came on too strong, but it wasn't idealistic thinking. For print, I find that I can easily use AI to turn a web page into a nice clean LaTeX and offer that as a PDF for those that want to print or read offline.

dofm 17 hours ago

But that's impractical (not to mention non-deterministic and a bit of a privacy risk) for any kind of online printability of dynamic information.

Most "I need a printout of this" information is timely and dynamic and needs fixing in a physical form.

A print stylesheet seems like something you could get an LLM to write.

hnlmorg 15 hours ago

It’s weird that you’re opposed to a few lines of CSS but happy to boil the ocean to implement the same thing via non-deterministic AI.

I mean, everyone has their own workflow preferences so I wouldn’t criticise you for wanting to use AI in your own personal set up. But it feels like your two statements there should be moral opposites of each other.

AuthorizedCust 19 hours ago

TBL’s vision is the starting point, not a straitjacket.

oniony 19 hours ago

And that's the crux!

HumblyTossed 19 hours ago

> The entire issue we have today is that we have blurred both the navigable and the printable concepts.

I politely disagree, the problem is we have made websites a javascript hellscape with all that original intent broken by design.

matsemann 19 hours ago

I think that's an orthogonal issue. A webpage can be crazy with loads of JS stuff, but still print nicely or behave well defined when it comes to semantics, screen readers etc.

adrian_b 14 hours ago

While what you say is correct, the point is that the excessive use of JS is what makes nowadays the print command the only way to save most Web pages.

Years ago I was never using the "print" command in browsers. I used the "save" command. But now the "save" command is useless for most sites, because the saved scripts frequently do not work offline or they do not work even online, but from local files. So the only alternative is "print", which is extraordinarily buggy in both Firefox and Chrome, but their developers do not give a ****, so there are many years or perhaps decades since printing in Firefox or Chrome renders completely incorrectly almost all Web pages.

As a workaround for the stupid rendering in Firefox and Chrome, I frequently print twice a Web page, once in Portrait and once in Landscape, because the corrupted parts of the printed page will typically occur in different locations. Moreover, I may have to fiddle with other printing parameters, e.g. whether to print backgrounds or not, or with different margins and paper sizes, because it is unpredictable which settings will work best with a given site.

James_K 19 hours ago

The idea of printing out one of those documents does not conflict with this.

f30e3dfed1c9 17 hours ago

>I politely disagree. The original intent Tim Berners Lee had [1] was to create a navigable way of finding documents and information. Not printable.

And I politely disagree right back. My particular problem with this has to do with purchasing. When I make a purchase at work, I need something I can attach to a purchase request as a quote. Note that this is often not a formal quote, but rather evidence of what whatever I want to buy will cost.

A simple way to do this is to print a shopping cart to PDF and attach that to the PR. Some web sites do this just fine and others do it horribly. They should do better.

arcanemachiner 15 hours ago

This might be more of an edge case than people who complain about websites that require JS, which is itself a number that rounds to basically zero.

Maybe you could capture the full height of the website as a screenshot? There are extensions that do this, and there is some degree of native support for the feature nowadays.

f30e3dfed1c9 14 hours ago

Maybe it's a weird, unusual edge case but maybe not. Lots of people need to keep records of various things for various reasons. In my personal life, I also "print" lots of stuff from various web sites to PDF for record-keeping purposes. This is absolutely routine for me, I do it all the time.

Thankfully, most of the web sites for which I want to do this — banks and other financial institutions, but others also — have easy ways to create printable receipts because they know that people want to do things like this.

And you can disagree, but when I come across some e-commerce site where printing what I want or need to PDF doesn't work because the site just makes a horrible unreadable mess out of it, I think, well here's a set of "web developers" who are just not good at what they do.

(And yes, I fall back to screen shots when I must.)

adrian_b 13 hours ago

The resolution of screenshots is typically unacceptable for most uses, especially when the bitmap were scaled, which would introduce blurring.

bigbuppo 16 hours ago

The biggest problem is that we went to mobile-first design along with a horrible split between backend and frontend functionality. If you hit view source on a lot of sites these days a page will be just a stub for calling javascript that actually puts the html on the page. It's not so much a function of hiding what the site does as it is web developers are afraid to write html and instead punt that into their javascript framework-of-frameworks.

cycomachead 9 hours ago

The Web is meant to have links and interactive content and be navigated, sure.

But to expect every author also upload a PDF? I mean, TeX is great for what it is, but there's a reason _the web_ adapted print stylesheets.

Even if (La)TeX (or Typst, or Postscript or anything else) were easy to learn, you're left with maintaining 2 copies or a compilation system which is also a challenge.

swiftcoder 19 hours ago

Hilariously, when I hit CMD-P on this specific website, I end up with 4x pages: the first is 80% blank, the 2nd page is fairly nice, the 3rd page contains just the CSS code sample as a thin strip on the left-hand side, and the last page is again mostly blank space...

I also attempted something like this, but only to format my resume[1], since many employers require it to be submitted as a PDF

[1]: https://www.trist.am/resume/

PMunch 18 hours ago

Which browser do you use? Unsurprisingly supporting media print queries hasn't been top priority for some browsers. It makes total sense, but when you suddenly need it for something it does suck.

swiftcoder 18 hours ago

That was on Safari, but I just tried on Brave (Chromium-based), and the result is pretty similar

ddawson 17 hours ago

I'm looking on Chrome for Windows and it looks just like the web view.

I am with those disagreeing with the original proposal that websites should be printable. There are so many things that go into showing you a web page and so many things that go into preparing that page for print. Even something basic like this isn't consistent.

swiftcoder 14 hours ago

Unfortunately I just tried Chrome for Mac, and it too insists on inserting a spurious page-break to keep the giant screenshot on the 2nd page. I couldn't find a CSS incantation to prevent this.

jmaw 14 hours ago

I see the same thing. It looks like the height of the "My accidental pnmp forkbomb" screenshot is causing it to jump to the second page

swiftcoder 14 hours ago

One of the lovely things about html/css as print medium, is that interpretation of page break seems to vary between browsers, and while you can use CSS to prevent a particular page break, you can't use CSS to force one inside an element like an img tag

jillesvangurp 17 hours ago

Debugging css issues related to print can be a bit of a PITA. Adding print options for dynamic content in a full stack page is not technically that hard. But getting it looking right can be a bit fussy. If you don't care about what things look like once printed, it's easy. But if you do care, it actually needs a bit of consideration.

I've done a few custom things with an application that generates labels for a label printer using just css and javascript. This is not that hard. But it does involve dealing with a lot of weirdness related to native print dialogs, vs. browser specific print dialogs (and their print previews), feature interaction with native printer settings and their scaling options, browsers adding footers to the printed document, and just general weirdness related to layout issues, page sizes, margins, etc.

My general feeling dealing with this is that CSS for print just gets a lot less scrutiny than regular CSS by browser developers.

One of the hacks you can do is generate a dom tree just for print. Replace the root of your dom tree with that, trigger the print, and then put the old dom tree back (with your full stack application and all the rest). Seems very hacky to have to do it like that. But it kind of works and is simple enough to do. And the benefit is that it stops the rest of your application (which probably does not take print into account at all) out of the equation and will stop that from interfering with your print layout. Conceptually, makes you wonder why you can't just hand a separate document tree + CSS to the print api call. This is a lot simpler than having one unified dom tree and one flattened unified CSS file. Separation of concerns is a good thing.

Yhippa 7 hours ago

I have a caveman thing I do that I'm somewhat ashamed to admit. I straight up print websites and feed that into my LLMs to chat against. Or when I'm trying to get product detail pages into the LLM. For articles, I frequently go to reading mode and select all and share to the LLM app.

But jeez, I remember doing consulting for an ecommerce site and adding print media queries to make the printouts look better. I am so impressed whenever I see a page print cleanly. I know how much care goes into doing it or thinking that users would do such a thing.

bigblind 20 hours ago

If I'm totally honest, this feels like somethign that'd be quite low on my priority list. I'd muchrather focus on the on-screen UX and accessibility if I have limited time. I think making things printable makessense in certain contexts, and I think could actually replace a lot of the pDF generation sites do for things like tickets, invoices, etc.

dofm 20 hours ago

This is precisely why I do make things basically printable right from the start.

For one, it often entirely heads off the requirement for "can we have it so the user can download a PDF of this?" (because users generally know how to print things!)

And for another, it broadens your options for implementing those PDFs if that requirement doesn't go away. You may not have to restrict your markup to that which some PDF generator library can work with, because printing any page in a headless browser is easier.

You often don't have to do much in a CSS stylesheet to get a modern site to render well, because we've moved away from so many layout hacks in general.

rhdunn 20 hours ago

And with light/dark mode support and CSS variables the colours in a print mode should be easy to define and support.

So you're primarily left with hiding content that shouldn't be printed (like navigation or menu buttons), defining page breaks, and some other quality of life changes for printing.

dofm 20 hours ago

Yeah. And out in the real world people are pretty tolerant of minor issues with printing (imperfect page breaks) because it's a miracle when any website prints at all!

Zak 19 hours ago

I was recently surprised to notice a PDF download link on a blog post from Anthropic. My first thought was "would anybody want to read a blog post in PDF rather than HTML format?"

This comment suggests the answer is yes.

dofm 19 hours ago

I think on corporate blog posts, they have regulatory impact, so that is perhaps additionally about legal teams — printouts of web pages end up in legal filings and discussed in meetings etc.?

Happy paralegals are a finite resource.

But yeah. Someone, somewhere, is printing your web pages for their own reasons, and you may never know whether poor printability cost you.

gsoid 10 hours ago

Absolutely yes. It’s offline friendly, free of distractions, stays on page between reading sessions, and easy for marks and annotations.

TFNA 14 hours ago

In some countries, printable tickets and other things once delivered as elaborate PDFs, are increasingly replaced by a QR code that can be printed from a barebones webpage, or even delivered outside of the web like to one's WhatsApp.

strenholme 20 hours ago

One issue with making websites printable is that printing, by default, removes background colors and images. So, for the chess diagrams I have on my webpage, I use background colors to have the chessboard be a checkerboard instead of a white background (the chess pieces are a color webfont)—but since web printing removes backgrounds, the chessboards have white backgrounds unless the person printing the webpage chooses “print backgrounds”.

The only way to work around this is to have two sets of chess pieces in the font, one with a white background for pieces on light squares, and one with a colored background for pieces on dark squares.

Printing web pages is rare enough I just assume someone doing that will also click on “print backgrounds”.

(The reason to not use images for the chessboard diagrams is because they use more bandwidth and can’t have usable “dark mode” colors)

jonathanlydall 20 hours ago

Sounds like SVGs would work well for this.

strenholme 16 hours ago

The advantage of a COLR font over SVGs is that they are functionally identical for this use case (indeed, the font in question was converted from SVG vector files) and a good deal more compact to boot.

boxed 19 hours ago

You might be able to fix this with a few simple print CSS rules though.

carlosjobim 19 hours ago

But it's only by default. So the super easy workaround is to check the "Print backgrounds" box when printing.

tacostakohashi 19 hours ago

I've periodically struggled with an HTML resume that can be converted to a PDF using chrome headless / puppeteer wkhtmltopdf, and looks good both on screen and PDF/printed.

Admittedly I'm not an HTML/css guru, but I know a bit... and it really feels like it shouldn't be this hard / require so many tricks to get it working even half ok.

The biggest issue is that the pages kind of fight against the DOM structure of the HTML. Like lets say I have big:

<div> <h2>Experience<h2>

  <div> <h3> Job A </h3> <p>Description</p>

  <div> <h3> Job B </h3> <p>Description</p>

  <div> <h3> Job C </h3> <p>Description</p>

  <div> <h3> Job D </h3> <p>Description</p>
</div>

There isn't really a good way to say...

* Keep "Experience" and "Job A" on the same page.

* Don't break after Job X / before Description.

* Don't try to keep the whole toplevel div on one page by breaking before, just break within it, sensibly.

Whatever tweaks/hints/hacks one applies to achieve that tend to be pretty brittle across browsers/page sizes/etc.

It's very tempting to just give up and go back to... something actually page-centric like word, pagemaker or whatever, instead of HTML and then having print as a second class citizen.

Rygian 19 hours ago

Have you looked into the CSS paged media directives?.

https://developer.mozilla.org/en-US/docs/Web/CSS/Guides/Page...

INTPenis 19 hours ago

Oh man, we are kindred spirits.

I also feel like there's no point in making a CV in HTML for my website, if I'm going to re-make it in PDF for all the old school application processes out there.

My solution was simply to keep the online CV as simple as possible, so it still looked good in PDF. But it's far from perfect.

beej71 18 hours ago

I wrote two xsl stylesheets and then encoded my resume in xml.

I know what you're thinking: "Ok genxer", but hear me out. :)

The two stylesheets produce HTML and Typst code. And so I get the exact render that I want.

(It actually goes further, making a CV and a resume from the same xml source, rearranging sections and sorting appropriately.)

Xml and xsl are quite dated, but this really does seem to be a good use case for data/presentation separation.

But really my dream is for print css (or something) to finally be implemented.

mxuribe 18 hours ago

I remember leveraging xml and xslt for doing the exact thing for my resume! This was quite some time ago, when xml was king. So, as a way to both unify my generation for my resume but more importantly learn more about xml, xslt, i created what sounds like a similar pipeline to yours. It felt really cool, and i learned about xslt - which to this day i'm impressed by. But, over the years as xml, xslt seem to have waned, plus i never got to use such skills at any of my jobs, and finally employers just wanted a Word doc, not a PDF...then i just stopped using my setup. Nowadays i simply keep a local copy of an .ODT file, and export to word or PDF, or whatever format an employer or recruiter asks for...and like 99.999% of the time its a Word doc. But, back then, it certainly as fun learning that stuff!

etcetcetcetceta 18 hours ago

I think you can generate html from latex, I use latex for my CV and render it as a pdf for circulation.

alDuncanson 18 hours ago

I was dealing with something similar and ended up writing my resume in markdown and converting the markdown to html, pdf, and png (with tools like pandoc and tectoni) in CI with a custom GitHub action I wrote: https://github.com/alDuncanson/md-press

pmlnr 19 hours ago

Oh, wow, that's one naive print.css

Missing things like resizing media to not occupy everything, blocking certain elements from getting broken up, and so on, wrap when needed, printing links (sic), etc

The latter is why I moved links into footnotes instead of inline linking - also to prevent breaking up the reading flow.

Also: adding page counters is virtually impossible.

Anyhow, I do think it's a good idea, but mostly for archival reasons: if you really want an archival copy, you'll need to print it.

Loranubi 4 hours ago

You can even have footnotes with links to other pages which automatically include the target page number in the text. Print CSS is actually pretty powerful. Just browser support is bad. I use “Prince” to convert html to pdf. With good CSS you can have a really good quality output. I used it to export a pdf for a whole book that way.

bryanhogan 2 hours ago

As most sites will have horrible CSS for printing, as it's not a big priority usually, I can recommend getting the page as a markdown file through something like the Obsidian Web Clipper and using that instead.

Obsidian Web Clipper: https://obsidian.md/clipper

cph123 20 hours ago

I personally think printing unless absolutely necessary is a waste of resources.

rhdunn 20 hours ago

Printing also covers things like exporting to PDF, or rendering in an eBook format (EPUB, Kindle, etc.) for reading the content offline while travelling, etc.

dofm 20 hours ago

It is. But sometimes it is absolutely necessary for something to be printable, and PDFs are useful. Sensible OSes can generate PDFs from the print dialogue.

mrob 20 hours ago

Considering trends in CVEs, printing is only growing importance. Printing has the unique advantage of giving you a record of data that's durable, unhackable, and possible to read without computers. If you print something, you can be confident that it's still going to be the same when you read it later.

tosti 19 hours ago

Bring back the auth.warn paper trail!

tosapple 19 hours ago

this.

read books too.

if anyone thinks msdn, github, reddit, stackoverflow, and soon if not now (hosted) llm's don't export and mine their users queries for architectural goodies...

developers ALL have targets on their backs, it's just the way the world has evolved.

cycomachead 8 hours ago

Assuming no one surreptitiously swaps out the pages!

You still gotta keep it secure. ;)

judge2020 6 hours ago

Or uses white-out and splices numbers into different places. It's happened before.

igl 20 hours ago

I agree that unnecessary printing is wasteful. But i would see this just as anecdotal: Having information structured consistently and a easily accessible format. That makes a difference in the long run

blightful 20 hours ago

Must be horrifying for you to walk into a barnes and noble. Don’t go read up on how bitcoin works or hell nascar. Seems pretty unnecessary that we drive cars around in a circle for countless hours. I will take books and people making physical copies of whatever they want over many other things you would probably pile on your list of wasting resources.

skeeter2020 19 hours ago

>> I will take books...

and you can, without attacking the GP statement about their PERSONAL preference, or clumsily trying to tar them with some sort of pejorative NASCAR paintbrush.

NikolaNovak 18 hours ago

* I don't feel that's a charitable interpretation of the OP's comment. I have seen people print emails just to read them, including a page of CCs they discard, or 37 version of the draft slide decks, etc. And that's on their own printer - the office printer pre-COVID was just always printing random pointless stuff (as witnessed by the volume of it that was never even picked up!:). I don't have particular urge to print randomly, so I probably fit into the "unless absolutely necessary" group, but goodness there's a lot, and I mean a LOT of paper waste that doesn't provide entertainment value of nascar or B&N.

* (Bitcoin, I'll agree, is an even more massively irrational and wasteful human endevour, but that doesn't mean all printing is awesome:)

* This is not to say that some webpages shouldn't be printable, I agree that they should - for a lot of the webpages focused on displaying information rather than interaction, making them print consumable is good. Just that parent's comment doesn't make them the buzz-kill party-pooper, necessarily :)

aworks 17 hours ago

In the early 90s, I would print out usenet posts so I could read them on the commuter train. Seemed a good idea at the time and I probably read them with more attention than my current online practices.

globular-toast 19 hours ago

I personally think the things you enjoy that aren't absolutely necessary are a waste of resources too.

boxed 19 hours ago

You might be discounting the electricity and battery wear on devices down to zero, and inflating the cost of prints in your mind. Paper is EXTREMELY cheap and efficient.

gwbas1c 19 hours ago

When there is a website that I want to save indefinitely, I will print it to pdf. It means I can go back in a few years after the site is offline or has rearranged its urls (thus breaking bookmarks.)

I mostly do this with order confirmation pages when I order off of random e-commerce sites, and with my bank when I use online bill pay. (And then if someone claims I didn't pay them, I go back through the pdfs and see if I made a mistake.)

More importantly, I "print to pdf" recipes that I want to save. Every year I print out the same turkey recipe, from a pdf, and then I don't need to worry about getting my phone or computer gross by interacting with it while I prep the turkey.

carlosjobim 19 hours ago

If a tree falls in the woods and there's not a hacker around to complain about it and demand government regulation against it, does it make a sound?

brettermeier 19 hours ago

Sure.

HumblyTossed 19 hours ago

Did they mean specifically printing to paper? Unfortunately the term is overloaded to include exporting to pdf, ePub, etc...

Or do you mean even exporting is a waste of resources?

etcetcetcetceta 18 hours ago

Printable does not mean it will be printed, if a page is printable one can assume the creator hasn't fucked with the scroll wheel for example, or forced you to sit through unnecessary animations.

matkoniecz 18 hours ago

I often print things that I do not want but need to read, and go outside with it.

Cuts well on procrastination.

Mikhail_Edoshin 4 hours ago

And RSSable. But they aren't. If most web content was in easily processable formats, many people could use that for various purposes, e. g. for search. This would diminish the market position of search gigants. But if web formats were hard to process, only big players would have resources.

meerita 21 hours ago

I cannot recall last time I printed something.

lukan 20 hours ago

I started out printing complex claude plans to go through them in a different setting, make notes, think about it, modify, then tell it to execute.

But website printing in general, I see less of a need.

dofm 20 hours ago

Just last night I noticed that one tiny thing LM Studio has over the otherwise absolutely glorious Unsloth Desktop is that transcripts print really nicely out of the app.

akst 20 hours ago

I do it for reading sometimes mostly papers, I just find it a bit easier to read through something without distraction and easier on the eyes. That and it sits on my desk until I actually read it.

mlok 20 hours ago

Did you try e-ink / e-paper ? (Remarkable etc.)

bonoboTP 20 hours ago

With paper I can put two or three pages side by side. Imagine needing 2 or 3 synchronized e-readers like that. And I can immediately draw on them, not worrying about what mode I'm in, what brush is selected blablabla. I can flip back and forth with my fingers etc. Downside is no search, no zoom no copy paste.

carlosjobim 19 hours ago

You can still copy paste and zoom.

bonoboTP 18 hours ago

Magnifying glass? Copy is hard, cut and paste, glue etc sure.

carlosjobim 16 hours ago

Yes to magnifying glass for zoom.

You copy with a pen or pencil, like the monks did.

Yes to cut and paste with scissor and glues.

akst 19 hours ago

I've enjoyed ink displays, but my kindle has been dead for some time and it was always kind of a pain to load stuff on too, most papers would require some kind of zoom as well although I'm sure they're better these days.

I do love an e-ink display, but I just like holding a sheet of paper, and not having to jump through menus to read something especially if I'm actively referring to it and revisiting it. Plus I can use my coloured fineliner on it, whereas the PDF viewer on my iPad crashes sometimes crashes if you look at it funny.

nkrisc 20 hours ago

I used to work for a vehicle listing site, and over and over again when we talked to real users they would tell us how they would make spreadsheets and print out our vehicle pages (and from other sites too) so they could compare everything together on their kitchen table.

We had just completed yet another other redesign and our (React) pages printed completely mangled and users hated it. We regularly got feedback about it.

And yet it was so low priority that me (UX designer) and a developer had to team up and get off the record permission to spend a few days fixing it in CSS alone while our managers covered for us.

When people for whom $29,000 is an enormous expense are purchasing a car, you can bet they are printing stuff and very, very carefully considering their purchase. Primary demographic was not young, tech native people.

dofm 19 hours ago

Property search websites too. Boggles my mind that Rightmove can make it possible for you to add notes on a property page but still has a shit print view.

nkrisc 18 hours ago

I think we all know the real reason, which I knew at the time as well: if you print the page, you aren’t seeing new ads.

dofm 20 hours ago

I don't really print. I do make quite a lot of archive PDFs of articles by simply printing to PDF. Sometimes a design both breaks reader mode (which often makes a better PDF) and frustrates printing from the ordinary view.

For a couple of applications I have built recently, an offline view of the data in print form has been part of the design requirement. It's still reasonably common in situations where people will meet in real life and a physical clipboard will be needed with a register or some physical signatures are needed, or in situations where paper goes home with people from meetings for them to read and sign. So, lots of school/community/disclaimer tasks where you can't presume people have devices (or a device wouldn't be usable/practical/useful, especially in outdoor contexts).

These days PDFs are also useful for marking up in some devices.

For my own work, making an app printable is a basic thing I always do — it's part of the normal process.

But that often means little more than disabling headers/footers/sidebars, rendering simple text where a logo was, putting in page break guidance at sensible points, perhaps overriding a few text colours, maybe a couple of media queries for items that need to only appear/not appear in print. Basic stuff. From there, most "print this" views are little more than a slightly simpler template.

The cool thing about is that printability often comes up late in the requirements, and it's a thing people try before they ask you about it — they try to print from the demo. So it's an easy positive surprise if the print view does more or less what the user would hope for, right from the beginning.

Making it so all of an interface is at least basically printable is actually easy if you plan for it, and it's a good way of keeping focussed on broader usability.

mft_ 20 hours ago

Same. It rankles when I have to - usually because of some sort of antiquated approach to bureaucracy, like contracts or CDAs that demand a wet signature (despite then accepting an emailed poor quality scan of said wet signature).

voidUpdate 20 hours ago

I've been trying to print a sewing pattern today, but apparently 2d printers are even less reliable than 3d printers, somehow

cardanome 19 hours ago

I do a lot of printing for TTRPG's.

Generally speaking, if you are in any group situation where you meet in person and want to share something, paper is still king. Easiest to share and no distracting electronic devices.

Also for learning I often prefer physical books and printed out worksheets. It helps engage the spatial memory plus you can write on them with an actual pen which also helps recall compared to typing.

8by3 20 hours ago

https://tuhat.net allows you to set a page size for your post and input hidden page breaks for when people download the epub version or print your posts, it doesn't affect the web version.

There is also a zine booklet mode which works out page imposition to print out a zine (eg. double sided, folded in half)

Click the printer icon on any tuhat post.

fouc 20 hours ago

this is for the authors/publishers of tuhat writing platform you mean?

8by3 18 hours ago

Inserting the page breaks is for the authors, its a button in the editor when creating a post. The download epub / create printable pdf are on the posts for readers.

don-code 20 hours ago

My read is that a lot of content - specifically of the infinite-scroll variety - is very intentionally not designed to be printed.

There are a number of Slack and Discord conversations I'd have liked to export off to PDF, for instance (where a solid 90% of my "prints" go). I'm reminded that one of Slack's boot messages used to be, "Consider the environment before printing this Slack."

self_awareness 23 minutes ago

I also think that websites should be printable, and years ago I've made an effort to make my website printable. I've lost my motivation to maintain the website, but printint still works.

ocd 8 hours ago

Most will find it unrealistic, but JavaScript should be an absolute last resort that should be avoided entirely or almost entirely.

My benchmark is that a website renders cleanly in `dillo`, which is rare, and would also include the website being cleanly printable.

jmaw 15 hours ago

An even bigger printing issue that exists on some sites is the use of scrollable elements. I haven't done extensive testing, but I tested on one site that uses `height:100vh;` around the main content of the page, with sub-sections using their own scroll settings. Printing the page only captured roughly what was visible in the browser window, but did NOT capture any of the internal scrollable sections. I imagine this would be more of a problem for web apps, as opposed to blog/article type content. But I imagine many blogs fall into this trap too.

lopsotronic 16 hours ago

Go talk to the browser vendors and have them roll in the CSS L3 PMM[1] specs, which have been in draft for . . . let's see here . . . oh, huh, two decades.

I guarantee the instant - the millisecond - that CSS PMM goes into the browser, that is the second the PDF ecosystem goes poof[2].

Aside from all that, back to the core point, it's quite late in the day to restrict HTML to page-based UX. It's been at least a decade since the "browser" has officially become a sorta-crappy sandbox for what we used to call client-server computing and just-in-time software development. But the thing about software, writing software, is that it's diametrically opposed to language, natural language, like the kind you use in documents. That's why we call one a "formal" language versus what we call "natural" language. The interface of these two, trying to make them the same thing, is an ever-bountiful cornucopia of suffering.

You see this in complex markup constructs, like conditionals and transcludes[3], that cross blades with natural language, i.e., documents. This is a big part of why every WYSIWYG "just like paper" XML editor ever made sucks so horribly. It's not that the developers are all idiots - I know a lot of them, and they're some of the smartest/canniest developers I've ever known - it's that they're taking on a task that is conceptually unworkable. A document markup that supports conditionals, or transclusion, the file stops being a document and becomes a part of a system that makes documents. Oh look another cornucopia what could be inside . .

[1] Paged Media Module

[2] Well, everywhere outside of high end print production, glossy prints, executive whitepapers. But even there, I predict a huge falloff, due to the existential pain of developing custom PDF pipelines.

[3] AsciiDoc (include::[] with tag=/lines= partials; ifdef::[], ifndef::[], ifeval::[], endif::[]); DITA (@conref, @conkeyref, @conrefend, @keyref; blah blah blah blah); S1000D (CIR, applics, whatever your Program Officer says); DocBook (all sorts of stuff); ATA iSpec 2200 (SGML crap); reStructuredText/Sphinx (.. include::, .. literalinclude::; .. only::, .. ifconfig::); and new kid on the block Typst[a] (#include, #import; #if … else expressions).

[3a] Speaking of which, if you want to see what paper markup looks like, I seriously recommend a look at Typst. It's like LaTeX for humans.

tingletech 16 hours ago

https://pagedjs.org is a pretty good polyfill for [1]

lopsotronic 15 hours ago

Yeah Paged is my go-to for CSS PMM at the moment. When PMM does hit browsers - if it ever does - it'll probably be some sort of transpile of Paged. Plus the stuff you can't really do just from JS/TS.

thenthenthen 19 hours ago

I have been loosely involved with very specific ‘web2print’ practices, aka using web technologies (html, css but also web as space for collaboration). For example: octomode [0]

>Octomode is a collective editing space for PDF making, using Etherpad, Paged.js and Flask.

[0] https://cc.vvvvvvaria.org/wiki/Octomode

Good4boothee 19 hours ago

> Here's the functions this does for me, in order:

Is for anyone else, the text that follows, unreadable black on almost black background?

1317 18 hours ago

yes, if you highlight it you can see what it's meant to be

qmkd 18 hours ago

I love the irony of an article about being able to print properly doesn't even appear correctly in the browser. Perhaps we should start with the basics...

LandenLove 7 hours ago

I had no idea that the css rule '@media print' was a thing. Very interesting. I could see this being very useful for certain website. E.g., Cooking recipe websites comes to mind.