URL назначения для печати по клику - PullRequest
0 голосов
/ 12 апреля 2011

У меня есть ссылка на нашей странице счетов-фактур.

Ссылка указывает на удобный для печати URL-адрес для печати счета-фактуры.

Проблема в том, что я хотел бы "нажать" на печатьсодержание этого URL.Не уверен, что это можно повторить, не открывая адрес назначения в первую очередь.

Ссылка: (этот первый метод не работает, потому что он печатает текущий URL)

<li class="print"><a href="https://www.mysite.com.au/pdf/invoice_parse.html?id=<?=$r['invoice'];?>" onClick="window.print();return false">Print Invoice</a></li>

По сути, я хочу щелкнуть ссылку, распечатать целевой URL.Не покидая страницу.Любые предложения, пожалуйста

Ответы [ 2 ]

4 голосов
/ 12 апреля 2011

Когда вы используете window.print(), печатается текущее окно.Таким образом, вы можете открыть iframe, а затем вызвать window.print() внутри него.

Возможно, вам не удастся скрыть iframe, задав ему position: absolute; left: -9999px.

JavaScript

При условии, что эти ссылки совпадают по протоколу, домену и хосту .

var printInvoice = function(url) {

    var iframe = document.createElement('iframe'),
        iframeDocument;

    iframe.style.postion = 'absolute';
    iframe.style.left = '-9999px';
    iframe.src = url;
    document.body.appendChild(iframe);

    if ('contentWindow' in iframe) {
       iframeDocument = iframe.contentWindow;
    } else {
       iframeDocument = iframe.contentDocument;
    }

    var script = iframeDocument.createElement('script');

    script.type = 'text/javascript';

    script.innerHTML = 'window.print();';

    iframeDocument.getElementsByTagName('head')[0].appendChild(script);

}

Не проверено, но оно должно работать:)

0 голосов
/ 12 апреля 2011

Просто предоставьте ссылку на PDF-файл и дайте своим пользователям распечатать его из любимого средства просмотра PDF.Делать подобные вещи автоматически просто раздражает, и вы все равно не найдете достойного способа сделать это.

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