Как узнать размерность бумаги для печати в javascript - PullRequest
1 голос
/ 21 ноября 2010

Я создаю отчеты в форматах HTML и хочу распечатать их автоматически с помощью Qt (qt имеет браузер на основе webkit, и его содержимое можно рендерить в файл PDF). Я хочу расположить элементы отчета в зависимости от размера целевой страницы. Для этого мне нужно получить доступ к размеру бумаги (желательно в пикселях).

Поскольку я использую webkit, он обладает всеми последними функциями html5 и css3.

есть ли API для доступа к свойствам напечатанной страницы внутри javascript. например, было бы неплохо написать: window.print_paper.width или window.print_paper.height

Заранее спасибо

Ответы [ 4 ]

3 голосов
/ 22 ноября 2010

То, что вы просите, это обратная сторона от стандартного трека @ page spec .Что CSS3-страничное медиа (@page) позволяет вам делать, это указывать ориентацию и размер страницы, на которой должен быть напечатан ваш документ, а не запрашивать у вашей системы текущую выбранную ориентацию и размер страницы.Насколько мне известно, даже мультимедийные запросы CSS3 не позволят вам сделать это.

2 голосов
/ 05 августа 2011

Используйте заголовок запроса Accept-Language, чтобы определить, является ли пользователь в a Локализацией с использованием букв , в противном случае принимается формат A4 Предположим, портрет, если это подходит вашим пользователям. Затем прослушайте браузер, чтобы угадать поля (IE9 = = 19,05 мм, FF5 = 12,7 мм, IE6 = 7,5 мм, Chrome = ~ 10 мм).

2 голосов
/ 21 ноября 2010

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

0 голосов
/ 23 декабря 2010

Вы можете получить размер содержимого с помощью QWebFrame :: contentsSize () и сделать его доступным для мира JavaScript, например, используя QWebFrame :: addToJavaScriptWindowObject ().

...