Tip: Print multiple detail view pages with page-break

Printing multiple custom detail views page by page can cause problems because they are printed continuously by default and not page by page. I show a simple trick using CSS to solve this problem. This trick is not new - and yet I hope it helps some of you.

Problem

Record after Record but not not page by page:

This is what I have

This is what I want

Custom print templates

For specially adapted printouts you can create your own template in HTML and switch it on in the init-function by changing $options->TemplateDVP.

function dienstreisen_init(&$options, $memberInfo, &$args)
{
	$options->TemplateDVP  = 'templates/dienstreisen_templateDVP_custom.html';
	return TRUE;
}

This print template can be used for printing a single record...

With a little work and HTML/CSS knowledge, you can produce quite respectable printouts like this one. In this case it is an internal accounting document for the accounting of travel expenses of employees.

Batch printing multiple records

The same print template can also be used after selecting multiple records on table view (TV).

It can be problematic that all data records are printed one after the other but not page by page. The red arrows indicate the places where a page-break shoul be, but isn't:

Page-break options in CSS

There is a simple trick using HTML and CSS in your print template for adding page-breaks after each record:

Add the following line of HTML code at the end of your print template:

<p style="break-after: always;"></p>

or

<p style="page-break-after: always;"></p>

A page break is added after this paragraph - after each record. This leads to exactly the print output I want:

There are more options for page-break. The following place is a good starting point for learning and experimenting:

I hope you enjoyed reading the article and learned something new today

Kind Regards,
Jan

Do you like it?