1

我正在生成 HTML 格式的报告,并希望使用 Qt 自动打印它们(qt 有一个基于 webkit 的浏览器,可以将其内容呈现为 PDF 文件)。我想根据目标页面大小定位报告的元素。为此,我需要访问纸张的大小(最好以像素为单位)。

由于我使用的是 webkit,它具有所有最新的 html5 和 css3 功能。

是否有一些 api 可用于访问 javascript 中的打印页面属性。例如,最好写:window.print_paper.width 或 window.print_paper.height

先感谢您

4

4 回答 4

3

您要求的是从标准轨道 @page 规范倒退。CSS3 分页媒体 (@page) 允许您指定打印文档的方向和页面大小 - 而不是查询系统当前选择的方向和页面大小。据我所知,即使是 CSS3 媒体查询的东西也不允许你这样做。

于 2010-11-22T07:17:58.590 回答
2

使用 Accept-Language 请求标头来确定用户是否使用Letter 的 locale中,否则假定为 A4。如果适合您的用户,请假设纵向。然后嗅探浏览器以猜测页边距(IE9 = = 19.05mm,FF5 = 12.7mm,IE6 = 7.5mm,Chrome = ~10mm)。

于 2011-08-05T04:13:28.420 回答
2

这是不可能的。Javascript 无法访问您的打印机来检测纸张大小。你甚至不能使用像素测量,因为它是相对于屏幕的,所以你必须使用其他单位,如 pt、英寸、厘米

于 2010-11-21T13:52:34.853 回答
0

您可以通过 QWebFrame::contentsSize() 获取内容大小,并使其可用于 JavaScript 世界,例如使用 QWebFrame::addToJavaScriptWindowObject()。

于 2010-12-23T03:46:16.400 回答