。net实现打印功能,怎么做?

anlianganl 2009-01-09 02:18:21
我有一个TALBE表,打算这个table打印出来
但不能用JS代码去写,这样要降低安全性,我用的是.NET2003能在CS下写一个打印按钮吗?
高手指点下吧。
...全文
202 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
bother0924 2009-01-09
  • 打赏
  • 举报
回复
利用.Net组件打印

利用.Net组件

◆优点:这种打印方式对于格式变化大,数据量小的应用来说非常合适。

◆缺点:

◆需要客户端安.Net framework组件。

◆Xml的解析上,如果文件较大速度上不是很理想。

◆页面首次加载时会有明显的延时。

使用XSL和XSLT转换Xml

◆XSL:扩展样式表语言,可以通过它来把Xml转换为其他的文本格式。

◆XSL转换包括发现或者选择一个模式匹配,通过使用XPath选择一个结果集,然后对结果集中的每一项,为这些匹配定义结果输出。

◆XSL是一个功能强大的工具,可以把Xml转换成任何你想要的格式。

【参考代码】
XslTransform xslt = new XslTransform();
xslt.Load(Server.MapPath( "StudentsToHTML.xsl") );
XPathDocument XDoc = new XPathDocument(Server.MapPath( "Students.Xml" ));
XmlWriter writer = new XmlTextWriter( server.MapPath("Students.html"), System.Text.Encoding.UTF8 );
xslt.Transform( XDoc, null, writer );
writer.Close();
Response.Redirect("Students.html");




利用ActiveX控件打印

利用第三方控件

◆自己开发控件。这种方式很多商用软件采用这种方式,写成控件后已经无所谓是在web中使用还是应用程序中使用了。

优点:打印方式非常灵活,基本上程序能做到的web也能做得到。

缺点:客户端需要安装组件,部署不是很方便。

使用水晶报表

◆用户仅需要Web 浏览器就可以查看报表。

◆报表查看器控件可以是应用程序中众多控件之一。

◆与报表轻松交互

◆用户可将报表导出为Microsoft word 和Excel 格式,以及PDF、HTML 和Crystal Reports for visual Studio .Net格式。

◆可以使用报表控件直接打印

【实例代码】

//水晶报表的填充,省略连接代码
myReport ReportDoc = new myReport();
ReportDoc.SetDataSource(ds);
Crv.ReportSource = ReportDoc;
//输出为指定类型文件
CrystalDecisions.Shared.DiskFileDestinationOptions DiskOpts = new
CrystalDecisions.Shared.DiskFileDestinationOptions();
ReportDoc.ExportOptions.ExportDestinationType =
CrystalDecisions.Shared.ExportDestinationType.DiskFile;
string strFileName = server.MapPath("Output");
switch (ddlFormat.SelectedItem.Text)
{
case "Rich Text (RTF)":
ReportDoc.ExportOptions.ExportFormatType =
CrystalDecisions.Shared.ExportFormatType.RichText;
DiskOpts.DiskFileName =strFileName + ".rtf";
break;
case "Portable Document (PDF)":
ReportDoc.ExportOptions.ExportFormatType =
CrystalDecisions.Shared.ExportFormatType.PortableDocFormat;
DiskOpts.DiskFileName = strFileName + ".pdf";
break;
case "MS word (DOC)":
ReportDoc.ExportOptions.ExportFormatType =
CrystalDecisions.Shared.ExportFormatType.WordForWindows;
DiskOpts.DiskFileName = strFileName + ".doc";
break;
case "MS excel (XLS)":
ReportDoc.ExportOptions.ExportFormatType =
CrystalDecisions.Shared.ExportFormatType.Excel;//
DiskOpts.DiskFileName = strFileName + ".xls";
break;
default:
break;
}
ReportDoc.ExportOptions.DestinationOptions = DiskOpts;
ReportDoc.Export();
//打印
// 指定打印机名称
string strPrinterName;
strPrinterName = @"Canon Bubble-Jet BJC-210SP";
// 设置打印页边距
PageMargins margins;
margins = ReportDoc.PrintOptions.PageMargins;
margins.bottomMargin = 250;
margins.leftMargin = 350;
margins.rightMargin = 350;
margins.topMargin = 450;
ReportDoc.PrintOptions.ApplyPageMargins(margins);
//应用打印机名称
ReportDoc.PrintOptions.PrinterName = strPrinterName;
// 打印
// 打印报表。将startPageN 和endPageN
// 参数设置为0 表示打印所有页。
ReportDoc.PrintToPrinter(1, false,0,0);




网上找的,不知道你有没有用
anlianganl 2009-01-09
  • 打赏
  • 举报
回复
郁闷了 老实的去学水晶报表吧
niitnanfeng 2009-01-09
  • 打赏
  • 举报
回复
再顶
anlianganl 2009-01-09
  • 打赏
  • 举报
回复
能不能把<OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 width=0 VIEWASTEXT> 弄成安全的
如果用JS的话
anlianganl 2009-01-09
  • 打赏
  • 举报
回复
要是这用gridview做的话也行 现在就想打印TABLE 可以做吗?
tangdayong123 2009-01-09
  • 打赏
  • 举报
回复
打印table表啊? 没有试过哎 网上找不到代码吗?
Jack123 2009-01-09
  • 打赏
  • 举报
回复
都是技术惹的祸~~
anlianganl 2009-01-09
  • 打赏
  • 举报
回复
要启用 ActiveX控件中的一些插件
lizheng__114 2009-01-09
  • 打赏
  • 举报
回复
用js怎么就降低安全性了?
anlianganl 2009-01-09
  • 打赏
  • 举报
回复
是不是都很忙呢
niitnanfeng 2009-01-09
  • 打赏
  • 举报
回复
顶。
anlianganl 2009-01-09
  • 打赏
  • 举报
回复
能说清楚点吗?
lange_love 2009-01-09
  • 打赏
  • 举报
回复
up
T13yiyong 2009-01-09
  • 打赏
  • 举报
回复
那 可以用第三方控件啊 ,
anlianganl 2009-01-09
  • 打赏
  • 举报
回复
恩,现在就要做这个功能,有经验的给个思路或参考代码也行。
Jack123 2009-01-09
  • 打赏
  • 举报
回复
这个问题比较实际
anlianganl 2009-01-09
  • 打赏
  • 举报
回复
而且不用水晶报表,就是个talbe里面的东西想给它打印出来而已。
anlianganl 2009-01-09
  • 打赏
  • 举报
回复
大家看帖的没经验的帮我顶下,共同学习

62,269

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧