Print all pages of a PDF file

Asked

Viewed 41 times

-1

I would like to know if it is possible to print all the pages of a PDF file obtained from a database (BLOB). This database has image and PDF acquisitions, so the display page will show both formats.

Follow the code excerpt:

echo '<object data="data:application/pdf;base64,'.base64_encode($row["pdf"]).'" type="application/pdf" style="height:1200px;width:100%"></object>';

When I have it printed (pressing CTRL+P) I only printed the last page of the PDF document.

From now on, thank you!

  • 1

    But on the screen (HTML) displays the entire PDF?

  • Another question. The problem happens in all browsers or one in particular?

  • The application works only in Firefox. It displays the images and PDF (in full) taken from an SQL database (saved as BLOB).

1 answer

1


The Ctrl+P only runs for HTML DOCUMENT, to print from OBJECT you will need the program/plugin used in OBJECT to even print, and remember each browser implements its PDF solution, whether this solution is part of the browser or not, is often part of Adobereader or Foxitreader and not the browser, although some things are changing, however it is worth remembering that the basic command (accepted in some plugins/programs) would point the print to the element, so:

var meuPdf = document.getElementById("meuPdf");

document.getElementById("btnPrint").onclick = function () {
   meuPdf.print();
};
<object id="meuPdf" data="data:application/pdf;base64,JVBERi0xLjMKMyAwIG9iago8PC9UeXBlIC9QYWdlCi9QYXJlbnQgMSAwIFIKL1Jlc291cmNlcyAyIDAgUgovTWVkaWFCb3ggWzAgMCA1OTUuMjggODQxLjg5XQovQ29udGVudHMgNCAwIFIKPj4KZW5kb2JqCjQgMCBvYmoKPDwvTGVuZ3RoIDY0Pj4Kc3RyZWFtCjAuNTcgdwowIEcKQlQKL0YxIDQwIFRmCjQ2IFRMCjAgZwo5OS4yMSA3NzEuMDIgVGQKKHRlc3RlMSkgVGoKRVQKZW5kc3RyZWFtCmVuZG9iago1IDAgb2JqCjw8L1R5cGUgL1BhZ2UKL1BhcmVudCAxIDAgUgovUmVzb3VyY2VzIDIgMCBSCi9NZWRpYUJveCBbMCAwIDU5NS4yOCA4NDEuODldCi9Db250ZW50cyA2IDAgUgo+PgplbmRvYmoKNiAwIG9iago8PC9MZW5ndGggNjQ+PgpzdHJlYW0KMC41NyB3CjAgRwpCVAovRjEgNDAgVGYKNDYgVEwKMCBnCjk5LjIxIDc3MS4wMiBUZAoodGVzdGUyKSBUagpFVAplbmRzdHJlYW0KZW5kb2JqCjEgMCBvYmoKPDwvVHlwZSAvUGFnZXMKL0tpZHMgWzMgMCBSIDUgMCBSIF0KL0NvdW50IDIKPj4KZW5kb2JqCjcgMCBvYmoKPDwvQmFzZUZvbnQvSGVsdmV0aWNhL1R5cGUvRm9udAovRW5jb2RpbmcvV2luQW5zaUVuY29kaW5nCi9TdWJ0eXBlL1R5cGUxPj4KZW5kb2JqCjggMCBvYmoKPDwvQmFzZUZvbnQvSGVsdmV0aWNhLUJvbGQvVHlwZS9Gb250Ci9FbmNvZGluZy9XaW5BbnNpRW5jb2RpbmcKL1N1YnR5cGUvVHlwZTE+PgplbmRvYmoKOSAwIG9iago8PC9CYXNlRm9udC9IZWx2ZXRpY2EtT2JsaXF1ZS9UeXBlL0ZvbnQKL0VuY29kaW5nL1dpbkFuc2lFbmNvZGluZwovU3VidHlwZS9UeXBlMT4+CmVuZG9iagoxMCAwIG9iago8PC9CYXNlRm9udC9IZWx2ZXRpY2EtQm9sZE9ibGlxdWUvVHlwZS9Gb250Ci9FbmNvZGluZy9XaW5BbnNpRW5jb2RpbmcKL1N1YnR5cGUvVHlwZTE+PgplbmRvYmoKMTEgMCBvYmoKPDwvQmFzZUZvbnQvQ291cmllci9UeXBlL0ZvbnQKL0VuY29kaW5nL1dpbkFuc2lFbmNvZGluZwovU3VidHlwZS9UeXBlMT4+CmVuZG9iagoxMiAwIG9iago8PC9CYXNlRm9udC9Db3VyaWVyLUJvbGQvVHlwZS9Gb250Ci9FbmNvZGluZy9XaW5BbnNpRW5jb2RpbmcKL1N1YnR5cGUvVHlwZTE+PgplbmRvYmoKMTMgMCBvYmoKPDwvQmFzZUZvbnQvQ291cmllci1PYmxpcXVlL1R5cGUvRm9udAovRW5jb2RpbmcvV2luQW5zaUVuY29kaW5nCi9TdWJ0eXBlL1R5cGUxPj4KZW5kb2JqCjE0IDAgb2JqCjw8L0Jhc2VGb250L0NvdXJpZXItQm9sZE9ibGlxdWUvVHlwZS9Gb250Ci9FbmNvZGluZy9XaW5BbnNpRW5jb2RpbmcKL1N1YnR5cGUvVHlwZTE+PgplbmRvYmoKMTUgMCBvYmoKPDwvQmFzZUZvbnQvVGltZXMtUm9tYW4vVHlwZS9Gb250Ci9FbmNvZGluZy9XaW5BbnNpRW5jb2RpbmcKL1N1YnR5cGUvVHlwZTE+PgplbmRvYmoKMTYgMCBvYmoKPDwvQmFzZUZvbnQvVGltZXMtQm9sZC9UeXBlL0ZvbnQKL0VuY29kaW5nL1dpbkFuc2lFbmNvZGluZwovU3VidHlwZS9UeXBlMT4+CmVuZG9iagoxNyAwIG9iago8PC9CYXNlRm9udC9UaW1lcy1JdGFsaWMvVHlwZS9Gb250Ci9FbmNvZGluZy9XaW5BbnNpRW5jb2RpbmcKL1N1YnR5cGUvVHlwZTE+PgplbmRvYmoKMTggMCBvYmoKPDwvQmFzZUZvbnQvVGltZXMtQm9sZEl0YWxpYy9UeXBlL0ZvbnQKL0VuY29kaW5nL1dpbkFuc2lFbmNvZGluZwovU3VidHlwZS9UeXBlMT4+CmVuZG9iagoxOSAwIG9iago8PC9CYXNlRm9udC9aYXBmRGluZ2JhdHMvVHlwZS9Gb250Ci9FbmNvZGluZy9TdGFuZGFyZEVuY29kaW5nCi9TdWJ0eXBlL1R5cGUxPj4KZW5kb2JqCjIgMCBvYmoKPDwKL1Byb2NTZXQgWy9QREYgL1RleHQgL0ltYWdlQiAvSW1hZ2VDIC9JbWFnZUldCi9Gb250IDw8Ci9GMSA3IDAgUgovRjIgOCAwIFIKL0YzIDkgMCBSCi9GNCAxMCAwIFIKL0Y1IDExIDAgUgovRjYgMTIgMCBSCi9GNyAxMyAwIFIKL0Y4IDE0IDAgUgovRjkgMTUgMCBSCi9GMTAgMTYgMCBSCi9GMTEgMTcgMCBSCi9GMTIgMTggMCBSCi9GMTMgMTkgMCBSCj4+Ci9YT2JqZWN0IDw8Cj4+Cj4+CmVuZG9iagoyMCAwIG9iago8PAovUHJvZHVjZXIgKGpzUERGIDEuMy4yIDIwMTYtMDktMzBUMjA6MzM6MTcuMTE2WjpqYW1lc2hhbGwpCi9DcmVhdGlvbkRhdGUgKEQ6MjAyMDAxMDYyMjEwNDctMDMnMDAnKQo+PgplbmRvYmoKMjEgMCBvYmoKPDwKL1R5cGUgL0NhdGFsb2cKL1BhZ2VzIDEgMCBSCi9PcGVuQWN0aW9uIFszIDAgUiAvRml0SCBudWxsXQovUGFnZUxheW91dCAvT25lQ29sdW1uCj4+CmVuZG9iagp4cmVmCjAgMjIKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwNDUxIDAwMDAwIG4gCjAwMDAwMDE3NTMgMDAwMDAgbiAKMDAwMDAwMDAwOSAwMDAwMCBuIAowMDAwMDAwMTE4IDAwMDAwIG4gCjAwMDAwMDAyMzAgMDAwMDAgbiAKMDAwMDAwMDMzOSAwMDAwMCBuIAowMDAwMDAwNTE0IDAwMDAwIG4gCjAwMDAwMDA2MDQgMDAwMDAgbiAKMDAwMDAwMDY5OSAwMDAwMCBuIAowMDAwMDAwNzk3IDAwMDAwIG4gCjAwMDAwMDA5MDAgMDAwMDAgbiAKMDAwMDAwMDk4OSAwMDAwMCBuIAowMDAwMDAxMDgzIDAwMDAwIG4gCjAwMDAwMDExODAgMDAwMDAgbiAKMDAwMDAwMTI4MSAwMDAwMCBuIAowMDAwMDAxMzc0IDAwMDAwIG4gCjAwMDAwMDE0NjYgMDAwMDAgbiAKMDAwMDAwMTU2MCAwMDAwMCBuIAowMDAwMDAxNjU4IDAwMDAwIG4gCjAwMDAwMDE5OTEgMDAwMDAgbiAKMDAwMDAwMjExMiAwMDAwMCBuIAp0cmFpbGVyCjw8Ci9TaXplIDIyCi9Sb290IDIxIDAgUgovSW5mbyAyMCAwIFIKPj4Kc3RhcnR4cmVmCjIyMTYKJSVFT0Y=" type="application/pdf"></object>

<button id="btnPrint">Imprimir</button>

What really does not guarantee to be compatible with different programs/plugins and browsers (then I will list the tests, but there are many variations of browsers and mobiles).


Print js.

The https://printjs.crabbly.com/ is a lib initially designed to print Pdfs (today does more than that), it can help you, but I’ll tell you right away, nothing is 100% guaranteed, so first put this on your site (the copy the files and shipment directly from your site):

<script src="https://printjs-4de6.kxcdn.com/print.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://printjs-4de6.kxcdn.com/print.min.css">

And then run like this:

<button type="button" onclick="printJS('local/do/seu/pdf.pdf')">
    Imprimir PDF
</button>

I really don’t know if it’ll work with the data URI Scheme, but I warn you, although the lib works well in Chrome, Firefox did not work, that’s because it was what I already said and reinforcement:

Each browser implements its own PDF solution, there is no standard solution for everything and probably in some browsers or operating systems such as mobiles, it is likely that none of this will work.

  • Thank you very much, William! Sorry I didn’t explain it right. This HTML page displays a report with image and PDF files. I need to print it out completely (images and Pdfs)... I already tried to put everything in PDF, but Dompdf gave error when I merged two PDF (newer versions).

Browser other questions tagged

You are not signed in. Login or sign up in order to post.