Как отобразить предварительный просмотр документа HTML - PullRequest
5 голосов
/ 05 июня 2009

Мне нужно отобразить некоторый контент HTML, так как он будет напечатан. По сути, я хочу эмулировать функцию предварительного просмотра в браузере.

Я не уверен, как это сделать только с помощью HTML / CSS / JavaScript. Единственное решение, которое я нашел, - это преобразовать HTML в PDF, чтобы он был разделен на страницы, а затем преобразовать этот PDF в изображения и напечатать каждое изображение одно под другим.

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

Кстати, я использую PHP в бэкэнде, поэтому, если для этого есть класс PHP, это будет полезно.

Размер страницы для воспроизведения будет буквенным, независимо от того, что настроил пользователь

Вот так это должно выглядеть в браузере: alt text

Ответы [ 4 ]

4 голосов
/ 05 июня 2009

Я не думаю, что это возможно. Вы не можете знать все пользовательские настройки печати в браузере (javascript) и определенно не на сервере (php, asp, java).

обновление

Подумайте об этом так (имейте в виду, что приличный 100% сплошной предварительный просмотр невозможен):

  • Пользователь переходит на страницу и запрашивает предварительный просмотр
  • Сайт обеспечивает предварительный просмотр (желательно в формате html, в противном случае png или pdf)
  • Пользователь любит и хочет напечатать:
    1. Из браузера
    2. Из какой-либо программы просмотра / редактирования изображений (png)
    3. Из Acrobat (pdf)
  • Каждое решение для печати имеет свой собственный диалог Печать .... Вы можете изменить настройки печати здесь.

Это последний момент, когда все, что вы хотите, терпит неудачу ... У вас больше нет контроля над выводом в этот момент (с вашего сайта) ...

3 голосов
/ 05 июня 2009

Как отмечают другие, вы не можете этого сделать. Я рекомендую вам сделать «удобную для печати» версию, которая просто содержит простой белый фон и простой черный текст. Но это примерно так же близко, как вы можете добраться до фактического «предварительного просмотра».

1 голос
/ 05 июня 2009

HTML на самом деле не предназначался для макета страницы, он должен был читаться на экране. Почему предварительный просмотр страницы браузера недостаточно хорош?

В любом случае, вы могли бы попытаться преобразовать HTML в латекс или что-то подобное, и отрендерить его в pdf или png на стороне сервера и отобразить это. Но это исключает использование очень сложных HTML-макетов, иначе это будет довольно неприятно.

0 голосов
/ 15 мая 2010

Я думаю, что есть простой обходной путь.

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

Я думаю, что этот подход должен работать хорошо.

...