Как автоматически распечатать содержимое данных (в Div, таблице, форме и т. Д.) Без диалогового окна печати (WebClientPrint-Neodynamic) - PullRequest
0 голосов
/ 02 ноября 2018

Я просматриваю PDF-версию этого URL: https://www.neodynamic.com/articles/Print-PDF-from-PHP-directly-to-default-printer-without-print-dialog/

Мне удалось запустить его. Однако я заметил, что он может распечатать только один сохраненный файл PDF, используя $ filePath = 'files / LoremIpsum.pdf'; в файле PrintPDFController.php. Есть ли способ динамического получения содержимого из базы данных, которая выводится, скажем, из таблицы, следующим образом:

        <table id="WebClientPrint">
        <tr><td>ONLY PRINT THIS PART AUTOMATICALLY</td></tr>
        </table>

        <input type="button"  onclick="How to call Table ID i.e. WebClientPrint and the default printer" value="Print" />

Это означает, что при нажатии кнопки должна быть распечатана только часть таблицы.

1 Ответ

0 голосов
/ 02 ноября 2018

Здравствуйте, я однажды использовал этот тип печати, и он мне помог, появится только окно выбора принтера.

        function PrintDiv() {
            var contents = document.getElementById("dvContents").innerHTML;
            var frame1 = document.createElement('iframe');
            frame1.name = "frame1";
            frame1.style.position = "absolute";
            frame1.style.top = "-1000000px";
            document.body.appendChild(frame1);
            var frameDoc = frame1.contentWindow ? frame1.contentWindow : frame1.contentDocument.document ? frame1.contentDocument.document : frame1.contentDocument;
            frameDoc.document.open();
            frameDoc.document.write('<html><head><title>DIV Contents</title>');
            frameDoc.document.write('</head><body>');
            frameDoc.document.write(contents);
            frameDoc.document.write('</body></html>');
            frameDoc.document.close();
            setTimeout(function () {
                window.frames["frame1"].focus();
                window.frames["frame1"].print();
                document.body.removeChild(frame1);
            }, 500);
            return false;
        }

Используйте это так

<body>
    <form id="form1">
    <span style="font-size: 10pt; font-weight: bold; font-family: Arial">Sample code</span>
    <hr />
    <div id="dvContents" style="border: 1px dotted black; padding: 5px; width: 300px">
        <span style="font-size: 10pt; font-weight: bold; font-family: Arial">Hello,
            <br />
            This is <span style="color: #18B5F0">Mateo</span>.<br />
            Hoping that you are enjoying my articles!</span>
    </div>
    <br />
    <input type="button" onclick="PrintDiv();" value="Print" />
    </form>
</body>

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...