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.