【发布时间】:2014-01-26 07:09:25
【问题描述】:
如果打印出来时碰到新页面,有没有办法将容器垂直居中?
如图所示,容器 A 可能会变得太大,以至于 A 和 B 将占据各自的页面。发生这种情况时,我希望 B 或两者都居中。
+----------------+ +----------------+ +----------------+
| +------------+ | | | | |
| | | | | +------------+ | | |
| | A | | | | | | | |
| | | | | | | | | +------------+ |
| +------------+ | | | | | | | | |
| | +---> | | A | | | | B | |
| +------------+ | | | | | | | | |
| | | | | | | | | +------------+ |
| | B | | | | | | | |
| | | | | +------------+ | | |
| +------------+ | | | | |
+----------------+ +----------------+ +----------------+
我们正在使用wkhtmltopdf 来生成 PDF。在我们的例子中,从 PDF 打印就足够了。但据我所知,wkhtmltopdf 不支持这样的居中。所以我想知道这是否可以通过 css 和/或 javascript 来实现。
一个想法是计算容器的高度并在 JS 中设置适当的上边距。但这需要知道容器何时/是否移动到下一页,我假设?
【问题讨论】:
-
你没有描述你想从哪里打印。假设您想从浏览器打印,我会说不,因为用于打印媒体的 CSS 在几乎所有常见的浏览器中都非常参差不齐。但是,princexml 应该支持您的请求,这是我们为类似问题选择的路径:我们只是提供一个链接来下载从实际页面的 HTML 生成的 pdf,然后使用 Princexml 在服务器端创建 pdf。不幸的是,这也意味着您无法自动适应当前打印机的页面大小。
-
@bertbruynooghe 我们使用wkhtmltopdf 来生成PDF。据我所知,没有办法这样做。在我们的例子中,从 PDF 打印就足够了。我会看看princexml。谢谢!
标签: javascript css printing pdf-generation wkhtmltopdf