Wicked Pdf
HexaPDF
Our great sponsors
Wicked Pdf | HexaPDF | |
---|---|---|
6 | 26 | |
3,517 | 1,181 | |
- | - | |
7.1 | 9.3 | |
about 1 month ago | 25 days ago | |
Ruby | Ruby | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Wicked Pdf
-
Working with PDFs in Ruby
We’ll start with the WickedPDF gem, which is powered by the wkhtmltopdf command-line library.
-
Creating PDFs in a Ruby on Rails application
You have a few options when trying to create a PDF in a Rails environment. Prawn and Wicked PDF have been around for quite a while. I have been using both gems and they work fine. However, they have a few limitations that can make it difficult to handle more complex PDFs. I recently discovered Grover, which can remediate some of this inflexibility in creating PDFs.
-
Generate PDF with gem wicked_pdf
# WickedPDF Global Configuration # # Use this to set up shared configuration options for your entire application. # Any of the configuration options shown here can also be applied to single # models by passing arguments to the `render :pdf` call. # # To learn more, check out the README: # # https://github.com/mileszs/wicked_pdf/blob/master/README.md WickedPdf.config ||= {} WickedPdf.config.merge!({ layout: "pdf.html.erb", orientation: "Landscape", lowquality: true, zoom: 1, dpi: 75 })
-
Converting HTML to PDF using Rails
A couple of popular gems to convert HTML to PDF in Rails are PDFKit and WickedPDF. They both use a command line utility called wkhtmltopdf under the hood; which uses WebKit to render a PDF from HTML.
- Gerando PDF com a gem wicked_pdf no Rails 6
-
20 months, 2K hours, 200K € lost. A story about resilience and sunk cost fallacy
Thanks for sharing - it takes a lot to share these sort of personal experiences. I've definitely been there, too.
Aside from all the good and valid comments about reducing scope and shipping an MVP, I'd like to raise another point which may be controversial (or even wrong), but still worth raising:
Would it have been different if you had used Rails? A few of the problems you mention (rich text editing, validation, and to some extend, pdf exports) are very easily solved in Rails. Take rich text editing: It's literally a couple minutes to use ActionText. Or validations / forms, there's really not much work to do. PDF exports are also not too hard via wicked_pdf [1] if you're okay with fixing some formatting quirks later on.
I've seen both worlds by writing tons of JS / React code myself, and at that time (2016-2018) those problems were almost an order of magnitude more time-costly to implement in SPAs. I remember react-router.. not great memories.
Of course, all the points reducing MVP scope still hold, yadda yadda, but.. if you could have had all those features (nearly) for free, would you be at another stage now? Who knows.
HexaPDF
-
Question about Yard
An example for a very simple setup is the cmdparse gem documentation. It only has a few additional documentation files that accompany the main API documentation. The other end of the spectrum is the documentation for HexaPDF which encompasses many additional documentation files besides the API documentation and deeply integrates the API docs into the whole documentation website.
-
HexaPDF Extras - Additional functionality for the HexaPDF library
I have just released my new gem hexapdf-extras which provides additional functionality on top of the HexaPDF library.
-
Understanding Text in PDF
Regarding TrueType font support: What I meant was that the library isn't a full TrueType font library but contains just the parts necessary for PDF supports. So what it can do is write a subset of a TrueType file because that's needed. But it can't serialize any arbitrary TrueType tables and it only handles those TrueType tables needed for displaying text in PDF. More advanced things like glyph positioning based on the language and characters in question is also not supported but may be in the future. Have a look at https://github.com/gettalong/hexapdf/tree/master/lib/hexapdf/font/true_type/ to see the implementation. All the things in this folder and below should be independent of PDF.
TrueType subsetting mainly consists of generating the necessary glyph and various index tables, and copying over all the other necessary tables which don't need to be adjusted. See https://github.com/gettalong/hexapdf/blob/master/lib/hexapdf/font/true_type/subsetter.rb for what is needed to subset.
-
What do you use ruby for?
for all my PDF processing needs, courtesy of HexaPDF,
-
One Class/Module per File Rules - Working With Nested Modules
Break the "rules" if need be. There is no need to separate out small classes into their own file because "something says so". If one were to look for the file of such a class, they would see there isn't one and automatically look into the file of the parent module/class. See e.g. https://github.com/gettalong/hexapdf/blob/master/lib/hexapdf/type/annotation.rb
-
[WIP] Creating Digital Signatures for PDFs with HexaPDF
I'm currently in the process of adding support for digital signatures to HexaPDF.
The code for all this is in the devel branch if you want to try it out.
-
Free / low cost software to remove a page from PDF on Windows 10?
There are a variety of command line tools like HexaPDF and qpdf that can do this; however, they need to be used on the command line.
-
Hooking into RDoc for better documentation with automatically executed examples
After I got some feedback about missing examples in the API documentation of HexaPDF, I decided to do something about it.
What are some alternatives?
Pdfkit - A Ruby gem to transform HTML + CSS into PDFs using the command-line utility wkhtmltopdf
Prawn - Fast, Nimble PDF Writer for Ruby
Grover - A Ruby gem to transform HTML into PDFs, PNGs or JPEGs using Google Puppeteer/Chromium
Tailwind CSS - A utility-first CSS framework for rapid UI development.
CombinePDF - A Pure ruby library to merge PDF files, number pages and maybe more...
Webpacker - Use Webpack to manage app-like JavaScript modules in Rails
puppeteer - Node.js API for Chrome
WKHTMLToPDF - Convert HTML to PDF using Webkit (QtWebKit)
Shrimp - a phantomjs based pdf renderer