Show HN: Printable Classics – Free printable classic books for hobby bookbinders
85 points| bookman10 | 22 days ago |printableclassics.com
As part of this, I wrote a software pipeline that takes epubs, html files, or pdfs and converts them into formatted books with custom covers, page numbers, chapter formatting, etc.
I used an LLM for categorizing the books. There's a nice way to filter such that you could easily find "Young Adult, Ancient, Fantasy" for example.
When downloading from the site, the PDFS are rendered in a work queue. Hopefully the server I'm using won't get overwhelmed. It takes around 10-15 seconds to generate for most books.
Most of the books currently on the site are from Standard Ebooks. I plan to add more books from Archive.org and Project Gutenberg over time.
I also created a little guide on how you can print and bind books at home with around $200 in equipment. (https://printableclassics.com/print-guide)
Printable versions of the Harvard Classics are available here: https://printableclassics.com/harvard_classics This is an example of direct PDF conversion.
Hopefully this is useful to some people. I plan to use the books here for home education myself so it will at least be useful to me. I'd like to add a guide with top suggestions by age level and some educational theory on how I made the selections. I'm happy to take any feedback on the site or answer any questions.
There is also the option to have the books professionally printed through a print on demand provider. I'm hoping that could be a way to pay for the site hosting.
Thanks for checking it out!
reedlaw|21 days ago
rahimnathwani|21 days ago
bookman10|21 days ago
staplung|21 days ago
Couple of observations:
- the page size drop down doesn't display any units (e.g. "6 x 9"). I assume there're all in inches but it would be a little more helpful if it said so and/or included a common name (e.g. US Letter) if one exists for that size.
- you might want to look into page imposition[1] something that's basically essential for any kind of stitched binding (as opposed to "perfect binding"). Full-blown imposition software is often ridiculously expensive and can have quite a few options so it's definitely both an engineering and UI challenge. In the meantime, Bookbinder JS[2] is a great site that I think runs entirely client side and can transform any PDF.
1: https://en.wikipedia.org/wiki/Imposition
2: https://momijizukamori.github.io/bookbinder-js/?paperSize=LE...
cbondurant|21 days ago
Maybe more complex layout might be needed if you happened to have a printer that could handle like, A0 size paper, or continuous rolls, which would give more flexibility in terms of the number of ways you could fit your pages onto the stock material. for the hobbyist though? More than good enough.
1: https://ctan.org/pkg/pdfpages?lang=en
bookman10|21 days ago
I personally like to use standard A4/letter size paper and print one page per side and do perfect binding. Printing two A5 pages on A4 was my original approach, but then the grain direction is wrong for standard computer paper and the pages come out too stiff.
I think the quality is good enough for me, but I definitely understand the appeal of sewn binding.
gibspaulding|21 days ago
bookman10|21 days ago
storystarling|21 days ago
robcohen|21 days ago
m-hodges|21 days ago
bookman10|21 days ago
SubmarineClub|21 days ago
soupymcsoup|21 days ago
bookman10|21 days ago
oneseven|21 days ago
Ha ha. I never thought of that as a selling point for affiliate links. I suppose Amazon will make less money if people print their own books as well.
xtiansimon|20 days ago
poulpy123|21 days ago
bookman10|21 days ago
The pipeline itself is in node.js and uses mostly pdf-lib (https://pdf-lib.js.org/) and ebook-convert (https://manual.calibre-ebook.com/generated/en/ebook-convert....)
For epubs, I split the book into chapters and run ebook-convert on each chapter individually, adding an extra page if needed to make the number of pages even. Then I combine all the chapters and do a custom scheme for numbering (because you don't want numbers on blank pages, you want the numbering to start at chapter 1, etc)
For html books from Project Gutenberg for example, I make sure they have text in <p> and chapters in <h2>. Then do a similar logic with ebook-convert.
For pdf books, I just use pdf-lib to draw the pages directly.
I also shift odd pages to the right and even pages to the left so there is a larger inner margin than outer margin.
If you're looking to do custom books, I would just use ebook-convert by itself, it just won't be quite as pretty though because it lacks those improvements.