如何显示HTML文档的打印预览

如何显示HTML文档的打印预览,html,browser,printing,preview,Html,Browser,Printing,Preview,我需要显示一些HTML内容,因为它将被打印。基本上,我想模拟浏览器打印预览功能 我不知道仅仅用HTML/CSS/JavaScript如何做到这一点。我提出的唯一解决方案是将HTML转换为PDF,将其拆分为多个页面,然后将该PDF转换为图像,并逐个打印图像 如果有人能指出一个更直接的方法,那将是非常有帮助的。我甚至不确定这是否可行 顺便说一句,我在后端使用PHP,所以如果有一个PHP类用于此,它将是非常有用的 无论用户配置了什么,用于显示的页面大小都将是字母 以下是它在浏览器中的外观: 我认为这是

我需要显示一些HTML内容,因为它将被打印。基本上,我想模拟浏览器打印预览功能

我不知道仅仅用HTML/CSS/JavaScript如何做到这一点。我提出的唯一解决方案是将HTML转换为PDF,将其拆分为多个页面,然后将该PDF转换为图像,并逐个打印图像

如果有人能指出一个更直接的方法,那将是非常有帮助的。我甚至不确定这是否可行

顺便说一句,我在后端使用PHP,所以如果有一个PHP类用于此,它将是非常有用的

无论用户配置了什么,用于显示的页面大小都将是字母

以下是它在浏览器中的外观:
我认为这是不可能的。您无法在浏览器(javascript)中了解所有用户的打印设置,在服务器(php、asp、java)上也无法了解

更新

这样考虑一下(请记住,不可能有像样的100%纯色打印预览):

  • 用户导航到页面并要求打印预览
  • 网站提供打印预览(最好是html格式,否则为png或pdf格式)
  • 用户喜欢并希望打印:
  • 从浏览器
  • 从某些图像查看/编辑程序(png)
  • 来自Acrobat(pdf)
  • 每个打印解决方案都有自己的打印。。。对话您可以在此处更改打印设置

这是你想要的一切都失败的最后一点。。。此时(从您的网站上)您再也无法控制输出了。

HTML并不是真正用于页面布局的,而是用于在屏幕上阅读的。为什么浏览器页面预览不够好


无论如何,您可以尝试将html转换为latex或类似的东西,并在服务器端将其呈现为pdf或png并显示出来。但这将排除使用非常复杂的html布局,否则它将变得非常糟糕。

正如其他人所指出的,您不能这样做。我的建议是制作一个“打印机友好型”版本,只包含纯白色背景和纯黑色文本。但是,这已经接近实际的“打印预览”了。

我认为有一个简单的解决方法。

您可以询问用户页面大小以及上、下、左、右页边距。然后使用这些设置以PDF格式呈现页面。PDF将保证页面在生成时打印


我认为这种方法应该可以很好地工作。

那么,你的意思是不使用浏览器的打印预览功能,而是要将打印预览显示为实际的网页内容?谢谢,我忘了提到页面大小是字母,无论用户配置了什么页面大小只是一个问题。打印机的品牌/型号决定图像的可打印区域,并影响软分页符和页边距。如果不知道打印机和打印驱动程序的详细信息,真的无法可靠地预测它的外观。事实上,我说的是用户的打印设置,我指的是客户端打印配置(JohnFx声明的所有内容)。这不会给用户公平的打印预览,除非他们得到转换后的pdf或png进行打印。即使如此,这也取决于打印机的外观(您显示的是无边框打印机,但打印机无法打印无边框…它会压缩到可打印的尺寸,还是会在几页上打印多个部分…?其想法是向用户显示打印时HTML将包含多少页。当用户真的要打印时,将使用原始HTML,以便页边距和所有内容都不会显示出来。)帽子将由打印机设置