Asp.net 从网页打印条形码标签

Asp.net 从网页打印条形码标签,asp.net,html,css,printing,Asp.net,Html,Css,Printing,我正在开发一个ASP.NETWeb应用程序,它必须在标准Avery样式的标签页上打印动态创建的标签(一个特定的大小,所以只有一个总体布局)。标签的行数可变(3-6),可能包含文本行或图形条形码图像 我继承了我们的第一个剪切,使用单间距字体来减少格式问题,但这不允许在标签上有足够的文本,客户不满意。基本上是格式化文本 我的下一个版本使用表格、div、CSS和一些JavaScript计算来使用比例字体格式化标签。它仍然需要一些调整(用户必须正确设置打印页边距并关闭打印页眉和页脚),但它似乎可以工作

我正在开发一个ASP.NETWeb应用程序,它必须在标准Avery样式的标签页上打印动态创建的标签(一个特定的大小,所以只有一个总体布局)。标签的行数可变(3-6),可能包含文本行或图形条形码图像

我继承了我们的第一个剪切,使用单间距字体来减少格式问题,但这不允许在标签上有足够的文本,客户不满意。基本上是格式化文本

我的下一个版本使用表格、div、CSS和一些JavaScript计算来使用比例字体格式化标签。它仍然需要一些调整(用户必须正确设置打印页边距并关闭打印页眉和页脚),但它似乎可以工作

然而,不同的打印机呈现文本的方式似乎存在一些差异(WYS不是WYG),因此,即使我们在不同的浏览器上使用至少两种不同的打印机(喷墨打印机和激光打印机)进行测试,一些用户的标签也没有对齐。通过调整“页面设置”对话框上的页边距,可以调整轻微的页边距变化,但更难的问题是,标签之间的间距可能会缩小一小部分英寸,因此,如果第一个标签居中,则在页面结束时,标签文本和图像已从标签的顶部或底部爬行

我们即将切换到生成Word、Excel或PDF输出,这将花费大量的开发时间,并可能在打印过程中添加额外的步骤

那么,对于如何在不同类型的打印机上精确呈现HTML/CSS布局,有人有什么建议吗?我真的不在乎换行符/分词是否有点不同,但我需要能够预测每个标签区域的左上角的位置

现在标签在表格中沿着页面向下流动,我们一直在调整单元格和内部div的框模型,使它们具有统一的高度。我怀疑使用每个元素的绝对定位可能是最好的答案,但由于标签元素是ASP.Net生成的,所以这也会很棘手。如果我确信这会奏效,我宁愿尝试它,也不愿放弃我们必须使用的所有东西,换一种不同的生成方法

轻微更新: 现在我正在用绝对定位做一些测试——只设置包含块元素的顶部和左侧坐标。到目前为止,页面上的偏移量(页边距、纸张对齐等)略有变化,但所有经过测试的浏览器和打印机都将元素准确地放置在彼此相对的正确位置。我很欣赏PDF的提示,但是有人知道用这种方式使用绝对定位的其他“陷阱”吗

更新:
为了记录在案,我使用iTextSharp重写了标签打印部分,它工作得非常完美-这肯定是将来实现这一点的方法…

忘记HTML,制作PDF。HTML打印是非常多变的-不仅在不同浏览器之间,而且在同一浏览器的不同版本之间。PDF要容易得多


即使你只需要一个浏览器/字体设置/打印机/月相就可以完全正确地使用它,它也将是你所维护过的最脆弱的东西。不管你认为制作一个PDF需要多长时间(这其实并不难,因为有一些免费的库),HTML最终会占用你更多的时间。PDF阅读器被广泛部署,打印效果甚至比Word文件更加一致。

web格式不能保证获得一致的打印结果。考虑到MS Word对标签打印的标准支持,以及自动化和生成的相对容易性,我强烈建议采用这种方式


我不知道在使用web内容时,有什么方法可以跨所有类型的浏览器、操作系统和打印机进行percise打印。

在应用程序中添加一些选项,让用户根据其特定配置调整间距。如果您愿意,您可以将其包含在标签上,并通过媒体选择器将其样式化,但您可能也希望将其保留在某个位置。

“精确”和“打印”这两个词并不能很好地结合在一起。大约一年前,我做了一个OCR/OMR应用程序,即使在构建PDF时,我也看到了不同打印驱动程序之间的显著差异。正因为如此,我的直觉告诉你,你可能没有100%的成功

如果CSS和布局问题不适合您,您可能需要使用GDI+将标签构建为图像——至少这样您可以使用GetFontMetrics()等


祝你好运

我有一个类似的问题,答案是你做不到。相反,我使用iTextSharp实时生成了一个PDF文件,并将其传递给响应。

Flash也是一种很好的方法,可以像标签一样推送可打印文件,尽管实现和维护起来有点复杂。在大多数情况下,它的显示速度比PDF快得多,您可以将其嵌入页面设计中,只需在flash中添加一个“打印”按钮

几年前,当我们使用HTML和PDF生成确认收据时,我就这样做了。HTML是“ok”的,但最终用户的web浏览器会控制它,所以我们很快就放弃了这种方法。PDF的是好的,只要他们有一个PDF阅读器,我们惊讶的是,我们的许多客户没有。因此,在我们使用一个简单的FLASH电影切换到FLASH版本后,它也被抛弃了,其中包括一些动态文本区域和一个“打印”按钮。我使用几个flash变量在页面和flash之间传递数据。您还可以使用web服务


当我需要的不仅仅是简单的文本时,我会使用来自的PDF生成器组件的免费社区版。它工作得很好,速度也很快。

使用SQL Server Reporting Ser