How to print pdf.js document?

前端 未结 3 686
天涯浪人
天涯浪人 2021-01-03 00:07

I\'ve generated a document with pdf.js and it shows correctly. I\'don\'t have print button. How to add the button to allow users to print it ? I was using Chrome.

相关标签:
3条回答
  • 2021-01-03 00:41

    Try using the javascript-function window.print();, which opens the print-dialog.

    You will have to add an button to your html, which triggers the command - its not possible within the pdf.

    For this reason, you will need an iFrame, and use something like this:

    function printIt() {
        var wnd = window.open('http://your-pdf-url');
        wnd.print();
    }
    
    <input type="button" value="Print" onclick=printIt()>
    

    window.print() wouldn't work, because it would also print the surrounding html.

    EDIT:

    From your comment, I now know, that you want to print the content of a canvas-element - which is much easier.

    You don't need an iframe, you can put the button on the same page, and use window.print();.

    In order to only print the canvas-element, and to hide the surroundings (like the button), you can use css-Syntax like this:

    @media print
    {    
        .no-print, .no-print *
        {
            display: none !important;
        }
    }
    

    @media print specifies css-code, which only applies for a webpage, if it gets printed. If you now asign the class .no-print to everything except the canvas-element, only your pdf will be printed.

    You can also use this css-code, if it's easier:

    @media print
    {    
        *
        {
            display: none;
        }
        canvas 
        {
            display: inline;
        }
    }
    
    0 讨论(0)
  • 2021-01-03 00:42

    I have been looking for a solution to this for so long and then I landed on this JS plugin:

    http://printjs.crabbly.com/

    It works like a charm!

    0 讨论(0)
  • 2021-01-03 00:53

    If you want to keep everything in line and mess with jquery as little as possible you can try to something like:

    <a href="#PATH_TO_PDF.pdf" target="_blank"  onclick="window.print()"> print PDF </a>
    
    0 讨论(0)
提交回复
热议问题