2010-01-12 2 views
2

Как определить, сколько страниц печати будет отображаться в форме с использованием JavaScript?Получить количество страниц для печати в Интернете с помощью javascript

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

Спасибо.

ответ

3

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

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

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

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

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

+0

Приятный трюк CSS, чтобы справиться с ситуацией. – kta

3

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

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

8

Я рекомендую вам прочитать this article by A List Apart

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

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

+2

+1, отлично подходит для будущего использования. –

+1

Поддерживается ли он любым браузером? – Jaro

+0

@Jaro нет, совсем нет. это поддерживают только современные браузеры – marcgg

4

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

Смежные вопросы