我最近一直在为一个网站制作一个打印样式表,我意识到我无法通过有效的方式进行调整.使用重新加载周期来处理屏幕布局是一回事:
但是当你尝试打印时,整个过程会变得更加艰难:
我在这里错过了哪些工具?WebKit的检查员是否"假装这是分页媒体"复选框?Firebug(不寒而栗)可以做些什么吗?
为什么发现这个神奇的矩形如此困难?
在OnPrintPage事件中,我有PrintPageEventArgs,我试图在最大可打印区域的范围内使用图形绘制.
我尝试过使用PageBounds,PrintableArea,Graphics.VisibleClipBounds等.所有都无法始终获得绘图区域,尤其是从横向切换到纵向布局时.从Landscape切换到Portrait时,PrintableArea似乎永远不会改变.
我还注意到,根据我是否正在进行打印预览和实际打印,如何设置Graphics.VisibleClipBounds存在差异.在预览中它始终显示纵向宽度/高度,因此我必须检查它是否是预览,并且当它是横向时我必须手动交换宽度/高度.
我需要一个算法来计算可打印区域,因为它与当前的图形上下文有关,而不是在实际绘图中没有使用的任意理论打印区域.
我关心的是处理Graphics矩阵偏移.到目前为止,我注意到如何根据以下因素使用硬边缘预翻译图形上下文之间存在严重的不一致:
有没有一种标准的方法来处理这个问题?我应该重置矩阵吗?当我将OriginAtMargins设置为true时,Graphics会预先转换为84,84,但我的边距是100,100.艰难的利润是16,16.它不应该被翻译成100,100吗?因为0,0应该在页面边界,而不是硬边距.
基本上我的方法应该总是在获得最佳的可打印矩形.我只需要一种与设备无关的一致方式来确保我的绘图原点(0,0)位于页面的左上角,以便上面的Rectangle对我有用.
如何在Print中获得跨浏览器兼容性?打印css文件的任何提示,使所有浏览器上的纸张打印相同.
编辑
我已经在使用Eric meyer CSS,但是当我们从网站上打印时,它仍然面临着不同浏览器的不一致.
是否有任何CSS声明我们可以始终使用并放在print css的顶部,就像其他工作良好的css重置一样media=screen?
我已经在使用不同的css进行打印(print.css)了 media="print"
它会更好,保持* {posotion:static},*{float:none},* {clear:both}
在总打印CSS?
我的网站工作正常,但是当我点击文件>浏览器上的打印(浏览器打印预览)时,所有的CSS都会混乱,背景颜色会被白色空格替换而不会在预览页面上获得徽标.
那么我如何创建一个用于打印预览的CSS文件以及当用户点击打印时我如何调用.
点击"打印"时会丢失字形,但在浏览器窗口中显示正确.我说的是一个带有静态内容的简单页面,除了最新的twitter bootstrap.
是否可以在打印中显示Bootstrap图标?