【发布时间】:2020-12-16 19:26:27
【问题描述】:
我知道关于这个主题有类似的问题,但不知何故我无法解决这个问题。
我用谷歌搜索了这个问题并得到了很多参考,但没有一个对我有用:-(
我正在创建一个水晶报表,我将用它来打印徽章。
一切都很好,除了我希望报告中没有显示的 条形码。
我正在运行时创建此条形码并将其保存在我绑定到报告的数据表中。
我知道有两种方法可以做到这一点。
我可以使用 OLE 对象获取图像,方法是将对象的 Graphic 属性指定到包含图像路径的数据库字段。
但是这种方法的问题是,我必须保存图像,并且徽章的数量可以达到 10 万,我不想在服务器上保存 10 万图像文件。
我想采用另一种方法,将 Byte[] 字段绑定到报告,但不知何故这对我不起作用。
这里是代码。
System.IO.MemoryStream strmem = new System.IO.MemoryStream();
bc.Save(strmem, System.Drawing.Imaging.ImageFormat.Tiff);
Byte[] mybit = new Byte[strmem.Length];
strmem.Read(mybit, 0, Convert.ToInt32(strmem.Length));
dt.Rows[0]["Barcode_Image"] = mybit;
其中 dt 是我绑定到报告的表,“Barcode_Image”是 System.Byte[] 包含 byte[] 形式的条码图像的字段
我的 Web 配置中已经有了 Crystal Report Image 处理程序。
网络配置: 组件
<assemblies>
<add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.Shared, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.ReportSource, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.ReportAppServer.Controllers, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.ReportAppServer.DataDefModel, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.CrystalReports.Engine, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
</assemblies>
System.web 中的 HTTPHandler
<httpHandlers>
<add path="Telerik.Web.UI.WebResource.axd" verb="*" type="Telerik.Web.UI.WebResource, Telerik.Web.UI" validate="false"/>
<add verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
</httpHandlers>
System.webServer 中的HTTPHandler
<system.webServer>
<handlers>
<add name="CrystalImageHandler.aspx_GET" verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" preCondition="integratedMode"/>
</handlers>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
注意:我使用的是visualstudio 2010
请指导我,我错了
【问题讨论】:
-
不能将条码作为数字字符串传递给Crystal,然后使用条码字体显示吗?这就是我在 Crystal 中处理条形码的方式。
-
如果您从报告中复制图像链接并将其粘贴到新窗口中,是否会出现错误消息?
-
@digital.aaron,我想这就是我正在做的我正在使用字体创建条形码,当我保存文件时,它是一个有效的条形码,打印输出并扫描,它被扫描,所以条形码没有问题。创建后,我将条形码保存在我的数据集中的 System.Byte [] 列中,正如你所说,我猜是一串数字数据,我将该数据集绑定到我的水晶报告。我在报告中显示了那个 byte[] 列,但那里仍然没有图像的迹象。
-
@Alxwest 说找不到资源。
-
抱歉,回复晚了,感谢您的回复。
标签: asp.net image crystal-reports