5

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

我不确定如何仅使用 HTML/CSS/JavaScript 来做到这一点。我想出的唯一解决方案是将 HTML 转换为 PDF,以便将其拆分为页面,然后将该 PDF 转换为图像并打印每个图像。

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

顺便说一句,我在后端使用 PHP,所以如果有一个 PHP 类,它会很有帮助。

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

这是它在浏览器中的外观: 替代文字

4

4 回答 4

4

我不认为这是可能的。您无法知道浏览器 (javascript) 中的所有用户的打印设置,也绝对不知道服务器 (php、asp、java) 上的所有用户的打印设置。

更新

以这种方式考虑(请记住,不可能实现体面的 100% 纯色打印预览):

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

这是您想要的一切都失败的最后一点...此时您无法再控制输出(来自您的网站)...

于 2009-06-04T22:19:34.930 回答
3

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

于 2009-06-04T22:31:18.357 回答
1

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

无论如何,您可以尝试将 html 转换为 Latex 或类似的东西,然后在服务器端将其渲染为 pdf 或 png 并显示。但这会排除使用非常复杂的 html 布局,否则会变得非常讨厌。

于 2009-06-04T22:29:15.520 回答
1

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

您可以询问用户页面大小和顶部、底部、左侧、右侧边距。然后使用这些设置以 PDF 格式呈现页面。PDF 将保证页面将按照生成的方式打印。

我认为这种方法应该很好用。

于 2010-05-14T21:57:18.150 回答