回答
不完全是,但你可以使用的打印样式表:
<link rel="stylesheet" type="text/css" media="print" href="print.css" />
要设置字体大小,填充等,以物理单位,比如“PT”(即不应该在屏幕样式表的使用!),以至于当它在一个典型的浏览器中呈现时,或多或少是一个A4页面,通常具有随后的风格。没有什么是保证的,但你可以针对常见情况进行优化。
在打印中,您不必太担心字体大小首选项或dpi设置,但仍然无法控制浏览器使用的页边距或实际页面大小(US Letter小于A4),所以在主要浏览器上留下大量的摆动空间并进行测试。
您可以使用CSS样式的页面,并将其设置到一定的高度/宽度...有一个很好的教程here。
号你无法控制用户的缩放级别,打印机设置,纸张大小(是他利用在欧洲或A4纸在美国?法律)和所有的使用HTML影响打印机输出的各种其他的事情。
你可以用HTML做的最好的事情是制作一个非常简单的“打印友好”页面,并保持内容简短。或者,您可以创建一个PDF,旨在让您控制它的打印方式。
当然。您有几种可能性:
- 将您的页面转换为大图像。
- 将您的页面转换为PDF。
- 让您的所有用户都有一个固定尺寸的页面左右滚动,因为它太宽,并且极难传输信息。
“图像”方法有其缺点 - DPI分辨率浮现在脑海。 PDF似乎是最简单的方法。 – Piskvor 2009-01-21 14:05:57
不,没有办法,因为在呈现HTML时您无法知道打印机类型或纸张大小。
我唯一的建议是将打印机属性设置为在打印时缩放内容以适合一页。
使用PDF。你可以强制许多东西,如字体大小,字体类型和许多其他参数,但任何浏览器可以决定他们不关心和使用他们想要的任何东西,因此违反了你的先决条件或决定。 HTML不是(在我之后重复:不是)演示语言。
在很多情况下,它将主要工作,但没有什么是确定的。
不,但是您可以使用打印介质的专用CSS文件使打印视图更平滑,就像上面提到的那样。
然后,您可以例如至少通过使用 "page-break-before: always;"防止表跨越2页。
最后,你也可以使用上是不必要像广告,导航条等,以保持页面本身较短(足够短的单页,希望)元素 "display:none;"。
虽然没有保证。
- 1. 我可以强制在HTML打印中跳转页面吗?
- 2. 我可以强制Outlook 2007规则仅打印第一页吗?
- 3. 我可以强制git diff将文件视为副本吗?
- 4. 我可以强制生成JVM崩溃日志文件吗?
- 5. 我可以强制类型为json文件吗?
- 6. 我可以强制WPF渲染层吗?
- 7. 我可以强制.htaccess刷新吗?
- 8. 我可以强制UL成为OL吗?
- 9. 'to_yaml'时,我们可以强制渲染文本为二进制文件吗?
- 10. 我可以换一个长文件名吗?
- 11. 我可以强制网页浏览器发送表单文本为UTF8吗?
- 12. 响应式CSS:我可以强制渲染替代文字吗?
- 13. 这是我们可以强制ObjectDataSource ...的唯一方法吗?
- 14. 我可以从外部文件只导入一段html吗?
- 15. 我可以强制在MySQL
- 16. 我可以使用insertAdjacentHTML添加一长串html标签和文本吗?
- 17. 可以强制svn diff显示svn cp'd文件吗?
- 18. 我可以连接文本/ html文件与一些软批文件吗?
- 19. 我可以使用HTML页面作为另一个HTML页面的内容吗?
- 20. 我可以强制Apache和PHP使用小写/大写文件名吗?
- 21. 我可以强制GAE为CSS文件设置缓存标头吗?
- 22. 我可以强制gVim在新选项卡中打开拖拽文件吗?
- 23. 我可以在setContentView调用后强制绘制吗?
- 24. HTML/JavaScript对可以引用另一个HTML文件吗?
- 25. 我可以强制我的启用Container从traitsui Handler重绘吗?
- 26. 我可以强制用户升级我的应用吗?
- 27. 我可以强制从Linux控制台刷新Firefox页面
- 28. 您可以强制执行MPMoviePlayerPlaybackDidFinishNotification吗?
- 29. GHCI可以用来解释强制吗?
- 30. 你可以强制鼠标移动吗?
如果您想要对打印输出进行全面控制,PDF就是要走的路。 – 2009-01-21 14:05:05
“您无法控制用户的纸张尺寸[...]” - 对打印机进行成像会裁剪纸张以适应作者设置。 :) – Gumbo 2009-01-21 14:08:42