html - 从 IE/Delphi 打印具有忠实 CSS 格式的 HTML?

标签 html css delphi internet-explorer pdf-generation

我有一个小程序可以显示第三方生成的 HTML 页面。它实际上只是一个锁定的 TWebBrowser 组件的包装器(我相信它只是一个 IE 包装器)。

客户端现在也想打印这些页面 - 但 TWebBrowser 打印方法不会呈现所有 CSS。例如,在客户使用背景色 block 的情况下,我只获取背景色。当您让 IE 打印页面并且一些 CSS 类型的格式消失时,您实际上可以在某些网站上看到这一点。

我最初(愚蠢地)说服自己,问题是因为 CSS 是外部引用,但在我将 CSS 置于 .HTML 文件内部之后,问题仍然存在。

是否有组件或技术可用于获取包含此 CSS 格式的打印输出?我想知道是否首先尝试将浏览器页面转换为 PDF(这对我以后也有其他好处),但我也没有看到任何明显的方法。

我想我真的是在说 - IE 的打印输出很糟糕,有没有办法更好地近似于您在屏幕上看到的内容? :-)

编辑: 好的,现在继续。由于 Will 和 Onnodb 的建议,我可以说服打印输出包含 CSS 颜色元素 - 我的示例页面打印正常,并且鉴于用户了解注册表设置方法的重要性,他很乐意采用这种方式(这是将在锁定的公司型办公室中最多使用六个台式机)。

我现在的问题(它本身可能成为一个新的 S/O 帖子)是他们的 HTML/CSS 中有一些东西正在杀死 IE。 Firefox 很乐意将其全部打印出来(Safari 也是如此),但 IE 7 和 8 都会显示页面的打印预览,但在“真实”打印期间会死掉。

鉴于用某种 TGeckoBrowser(!) 替换 TWebBrowser 可能比它的值(value)更麻烦(并且可能不会与客户端一起飞行),我将有尝试找出导致问题的(令人讨厌的,令人费解的)格式化代码的哪一部分。那里有大量的 DIV,混合了相对和绝对位置......:-)

最佳答案

您是否在链接/样式标签中使用 media="screen,print" 链接样式表?对于打印,您还需要牢记诸如他们的打印机设置之类的事情:用户是否想让您打印出页面背景颜色?您是否专门定义了字体或是否让用户在浏览器属性中设置了他们自己的首选打印字体?

为打印目的编写一个完全独立的样式表通常是个好主意,因为像 Georgia 这样的衬线字体在纸上更容易阅读,而且字体大小可能需要更改。图片也可能想要隐藏或缩小。

关于html - 从 IE/Delphi 打印具有忠实 CSS 格式的 HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1130732/

相关文章:

html - 列宽总和等于父级宽度,但不适合

html - 如何仅使用内联 CSS 自定义无序列表元素符号(用于电子邮件)?

javascript - 一键提交多个表单到 iframe

html - 在单独的 .css 样式表中正确使用自定义字体

php - 使用显示为 onclick/checkbox id 的 MySQL id

css - 页面内容被导航栏覆盖

javascript - 我如何使一个简单的效果下拉菜单上升?

delphi - 在运行时通过字体基线垂直调整两个控件

delphi - Delphi&ADO:日期时间到字符串的转换

delphi - 带有 LiveBindings 的自定义网格 - EBindCompError 'No list control editor available'