我需要显示一些HTML内容,因为它会被打印出来。基本上,我想模仿浏览器打印预览功能。
我不确定如何使用HTML / CSS / JavaScript执行此操作。我提出的唯一解决方案是将HTML转换为PDF,然后将其拆分为页面,然后将该PDF转换为图像并将每个图像打印成另一个图像。
如果有人可以指出更直接的方法,那将会非常有帮助。我甚至不确定这是否是可能的。
顺便说一下,我在后端使用PHP,所以如果有一个PHP类就可以了,这将是有帮助的。无论用户配置了什么,用于diplaying它的页面大小都是字母
这应该在浏览器中看起来如何:
答案 0 :(得分:4)
我不认为这是可能的。你无法在浏览器(javascript)中知道所有用户的打印设置,也绝对不能在服务器上知道(php,asp,java)。
更新
以这种方式思考(请记住,不可能实现100%的可靠打印预览):
这是你想要的一切都失败的最后一点......你在那时(从你的网站)无法控制输出......
答案 1 :(得分:3)
正如其他人所指出的那样,你不能这样做。我的建议是你制作一个“打印机友好”的版本,只包含纯白色背景和纯黑色文本。但这与您可以进入实际的“打印预览”的距离非常接近。
答案 2 :(得分:1)
HTML并不是真正意义上的页面布局,它意味着要在屏幕上阅读。为什么浏览器页面预览不够好?
无论如何,你可以做的是尝试将html转换为latex或类似的东西,并将其呈现为服务器端的pdf或png并显示它。但是,这将排除使用非常复杂的html布局,否则会变得非常讨厌。
答案 3 :(得分:0)
我认为有一个简单的解决方法。
您可以询问用户页面大小以及上边距,下边距,左边距,右边距。然后使用这些设置以PDF格式呈现页面。 PDF将保证页面将按生成的方式打印。
我认为这种方法应该运作良好。