Entity PDF can create a PDF from any entity based on any View mode.
URL to use: /entity_pdf/{entity_type}/{entity}/{view_mode}
Example: /entity_pdf/node/5/pdf
By default, it uses mpdf8 PHP library, but custom modules could provide new rendering engines with EntityPdfRenderingEngine plugin.
Install with composer only!
The module provides a default htmlpdf.html.twig file
, and its settings allows to define a relative path to a custom version of it.
Thus, you can control the entire HTML structure that gets converted to PDF.
No CSS and/or JS from Drupal will get added, so you need to add everything by hand in the twig file.
All fields will get a view mode template suggestion added so you can theme fields for your PDF view mode. (Once https://www.drupal.org/node/2270883 is in core this should all work out-of-the-box in Drupal).
The module also provides an "Entity Pdf Download" action that allows to generate & download PDFs as operation on multiple nodes (i.e. via Views Node operations bulk form).
If you use Display Suite, an extra (ds_)field will become available (for nodes only) on all view modes that outputs a link to your PDF view. (view mode for the generation can be selected).
There is access permission to view PDF's: don't forget to check it in your permissions.
If you need more access control and checks create a ticket in the issues queue.