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

我不认为这是可能的。您无法知道浏览器 (javascript) 中的所有用户的打印设置,也绝对不知道服务器 (php、asp、java) 上的所有用户的打印设置。
更新
以这种方式考虑(请记住,不可能实现体面的 100% 纯色打印预览):
这是您想要的一切都失败的最后一点...此时您无法再控制输出(来自您的网站)...
正如其他人指出的那样,您不能这样做。我的建议是您制作一个仅包含纯白色背景和纯黑色文本的“打印机友好型”版本。但这与实际的“打印预览”差不多。
HTML 并不是真正用于页面布局,而是用于在屏幕上阅读。为什么浏览器页面预览不够好?
无论如何,您可以尝试将 html 转换为 Latex 或类似的东西,然后在服务器端将其渲染为 pdf 或 png 并显示。但这会排除使用非常复杂的 html 布局,否则会变得非常讨厌。
我认为有一个简单的解决方法。
您可以询问用户页面大小和顶部、底部、左侧、右侧边距。然后使用这些设置以 PDF 格式呈现页面。PDF 将保证页面将按照生成的方式打印。
我认为这种方法应该很好用。