Получить количество страниц для печати в Интернете с помощью JavaScript - PullRequest
3 голосов
/ 12 января 2010

Как определить, сколько страниц будет напечатано в форме с использованием JavaScript?

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

Спасибо.

Ответы [ 4 ]

9 голосов
/ 12 января 2010

Я бы порекомендовал вам прочитать эту статью от A List Apart

@page front-matter :left {
  @bottom-left {
    content: counter(page, lower-roman);
  }
}

(используется CSS3)

4 голосов
/ 12 января 2010

Учитывая, что даже несколько стандартный размер бумаги отличается (буква от формата А4), это на самом деле невозможно. Я обычно генерирую PDF , когда мне нужен такой контроль.

4 голосов
/ 12 января 2010

Я не думаю, что это можно сделать (за исключением того, что, как отмечает marggg, с помощью CSS3, но это пока недостаточно широко используется).

Вы могли бы дать браузеру несколько указателей, вставив элементы с атрибутом page-break-after или page-break-before, но это не даст вам полной уверенности в том, каким образом будут напечатаны ваши страницы.

В зависимости от вашего макета вы можете что-то решить, поместив абсолютно позиционированное изображение относительно элемента, который имеет page-break-before: always. Впрочем, я никогда не пробовал этого, и вам придется поиграть с этим, чтобы понять, хорошо ли это.

Фоновые изображения, очевидно, не вариант, так как они исключены из печати по умолчанию во всех известных мне браузерах.

Я думаю, что если вы хотите получить надежные водяные знаки, вам придется прибегнуть к созданию PDF-файлов, например, с использованием библиотеки fpdf на основе PHP.

3 голосов
/ 12 января 2010

AFAIK, это просто невозможно. Обычный JavaScript не может взаимодействовать с вашим принтером для определения настроек, номеров страниц или чего-либо еще без элемента управления ActiveX или другого подключаемого модуля.

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

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