Печать содержимого URL-адреса - javascript

У меня есть php-страница с диаграммой, средством выбора даты (календарь) и несколькими кнопками.

Я хочу добавить еще одну кнопку «Печать диаграммы», которая печатает ТОЛЬКО диаграмму, а не всю страницу на локальном принтере.

Я пытаюсь сделать это, используя другой скрипт (который выводит только диаграмму) и используя функцию javascript 'window.print'

HTML

<input type="button" onClick="printChart()"   value="Print Chart">

JavaScript

function printChart(){

    var myParameters = window.location.search;// Get the parameters from the current page

    var URL = "http://my_server/my_folder/my_script_that_outputs_only_my_chart.php"+myParameters;

    var W = window.open(URL);

    W.window.print(); // Is this the right syntax ? This prints a blank page and not the above URL
}

Пробовал приведенный выше код - не работает. Пустая страница распечатывается.

Есть ли способ распечатать целевой URL? Если да, можно ли распечатать его, не открывая новое окно?

Спасибо за ваше время


person cvic    schedule 07.07.2009    source источник
comment
Страницы, удобные для печати, остались в прошлом. Используйте таблицу стилей печати.   -  person Josh Stodola    schedule 08.07.2009
comment
Если это слишком сложно, попробуйте следующее: W.onload = function() { print(); }   -  person Josh Stodola    schedule 08.07.2009


Ответы (3)


Вы можете использовать таблицу стилей печати...


<link rel="stylesheet" type="text/css" media="print" href="print.css" />

... в дополнение к вашей обычной таблице стилей. В print.css просто сделайте все "display: none;" кроме того, что вы хотите напечатать.

person Matthew Groves    schedule 07.07.2009
comment
Спасибо!. Добавил тег div в свой html и включил разделы, которые я не хочу печатать. В моем print.css сделал этот div display: none - отлично сработало - person cvic; 16.07.2009

Попробуйте удалить вызов W.window.print() и добавить

<body onload="window.print();">
...
</body>

в ваш php-документ, чтобы убедиться, что ваш документ готов перед печатью, и просто напечатайте эту страницу.

Что касается печати с этой страницы, добавление

  <input type="button" value="Print" onclick="window.print();" />

должно сработать.

person Tony Heupel    schedule 07.07.2009

Попробуйте использовать CSS @media print

«Я хочу добавить еще одну кнопку «Печать диаграммы», которая печатает ТОЛЬКО диаграмму, а не всю страницу на локальном принтере».

Просто попробуйте распечатать javascript, а затем создайте класс CSS, например

`@media print` {
.onprinthide { dispaly: none; }
}

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

person TigerTiger    schedule 07.07.2009