CMP*_*mer 13 html css printing asp.net
我正在开发一个ASP.Net Web应用程序,它必须在标准的Avery样式标签纸上打印动态创建的标签(一个特定的大小,所以只有一个整体布局).标签具有可变数量的线(3-6),并且可以包含文本行或图形条形码图像.
我继承的第一个剪辑,使用等宽字体来减少格式问题,但是这不允许在标签上放置足够的文本并且客户不满意.基本上它是格式化的文本.
我的下一个版本使用TABLE,DIV,CSS和一些JavaScript计算来使用比例字体格式化标签.它仍然需要一些调整(用户必须正确设置他们的打印边距并关闭打印页眉和页脚),但它似乎工作.
但是,似乎不同的打印机如何渲染文本(WYS不是WYG)有一些变化,所以即使我们使用至少两种不同的打印机(喷墨打印机和激光打印机)在不同的浏览器上进行测试,一些用户的标签不排队.通过调整页面设置对话框中的边距可以调整轻微的边距变化,但更难的问题是标签间距可能会偏离一小部分英寸,因此如果第一个标签很好地居中,那么页面末尾标签文本和图像已从标签的顶部或底部爬出.
我们即将转向生成Word,Excel或PDF输出,这将花费相当多的开发时间并可能在打印过程中添加额外的步骤.
那么,有没有人对如何在不同类型的打印机上精确渲染的HTML/CSS布局有任何建议?我不太关心线/字断点是否有点不同,但我需要能够预测位置每个标签区域的左上角.
现在,标签在表格中向下流动,我们一直在调整单元格和内部DIV的盒子模型,使它们达到统一的高度.我怀疑使用每个元素的绝对定位可能是最好的答案,但由于ASP.Net生成标签元素,这也很棘手.如果我肯定知道它会起作用,我宁愿尝试它而不是扔掉我们必须去的另一代方法.
轻微更新:现在我正在进行一些绝对定位测试 - 仅设置包含块元素的顶部和左侧坐标.到目前为止,页面上的偏移量(页边距,纸张对齐等)都有微小的变化,但所有测试的浏览器和打印机都准确地将元素放入彼此相对正确的位置上.我很欣赏PDF提示,但是有没有人知道使用绝对定位的其他"陷阱"?
更新: 为了记录,我使用iTextSharp重写了标签打印部分并且它完美地工作 - 绝对是将来这样做的方式...
Nea*_*all 28
忘记HTML并制作PDF.HTML打印变化很大 - 不仅跨浏览器,而且跨同一浏览器的不同版本.PDF更容易.
即使您使用一个浏览器/字体设置/打印机/月亮阶段完全正确,它也将是您必须维护的最脆弱的事情.无论多久你认为它会做一个PDF(并且也有一些免费的图书馆在那里它不是真的那么难),HTML最终将采取你的时间多了很多.PDF阅读器的广泛部署和打印比Word文件更加一致.
Web不是保证获得一致打印结果的格式.鉴于MS Word标签打印的标准支持,以及相对容易的自动化和生成,我强烈建议采用这种方式.
我不知道在使用Web内容时,可以在所有类型的浏览器,操作系统和打印机上进行percise打印的任何方法.
| 归档时间: |
|
| 查看次数: |
14720 次 |
| 最近记录: |