仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2407|回复: 18
打印 上一主题 下一主题

[学习教程] ASP网页编程之web打印的另类办法

[复制链接]
再现理想 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-16 00:24:31 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
asp是基于web的一种编程技术,可以说是cgi的一种。它可以完成以往cgi程序的所有功能,如计数器、留言簿、公告板、聊天室等等。web|web打印   信任用B/S体例做过使用的人都能够会碰到如许一个成绩,若何便利、雅观地完成报表打印。假如利用阅读器的打印菜单打印的话,将把网页上的一些无用的器材打到报表上,好比使用菜单等。由于选择打印菜单打印网页将会把网页中的一切内容全体打印出来,假如你的使用有分帧则打印内容将包含各帧中的内容,而你实践要的内容只是个中一局部。所以有良多使用就只能把打印功效放到后台完成了。  针对这类情形,咱们该怎样办?其实可以有多种办法完成网页打印功效。

  一种办法就是利用专业的打印东西,如Crystal Reports(水晶报表)。用过Visual Studio 5.0的伴侣一定记得这个东西,不外那时的版本只要4.几。如今的最新版本已达9了,近几个版本的水晶报表都撑持WEB打印。最复杂的办法是先用水晶报表制造好模板,然后利用ASP带参数挪用制造好的模板便可。水晶报表在网页上生成报表后,可以直接打印,也能够转存为其它的对照经由过程的文件如Excel文件。利用水晶报表可以制造出十分大度的款式,关头在你对水晶报表的开辟才能上,但因为水晶报表价钱较高,只要当项目很赚钱时才买得起。

  第二种办法是购置第三方的网上打印控件,费用同水晶报表比拟廉价,但后果功能究竟若何则仁者见仁了。

  第三种办法是使用款式表及JavaScript自界说函数完成。经由过程款式表及JavaScript,完成网页打印,后果也还可以。在此有一个实例请人人看看。上面是打印函数完成详解:

<script language="JavaScript" type="text/JavaScript">

<!--

function DP() {

if (window.print)

{

var Div1 = document.all.Div1.innerHTML;

var Div2 = document.all.Div2.innerHTML;

// *****************************************************

// Div1、Div2即为你在打印的区域

// 这里依据你要打印的哪些内容,从原显示页面顶用

// <div id=Div1>Div1....</div><div id=Div2>Div2...</div>

// 等标示出来,要打印几何项目就标示几何

// ***************************************************** var CSS = '<style type="text/css" media=all>' +

'p { line-height: 120%}' +

'.ftitle { line-height: 120%; font-size: 18px; color: #000000}' +

'td { font-size: 10px; color: #000000}' +

'</style>' ;

// *****************************************************

// 界说打印用的CSS,详细你想打印出甚么样的格局全看你本人

// 了,但要注重:假如此处有甚么同网页中纷歧致的,能够打印

// 出来的页面同网页格局、字体能够会有所分歧

// *****************************************************

var body ='<table width="640" border="0" cellspacing="0" cellpadding="5">' +

' <tr> ' +

' <td class="fbody"> ' +

' <div align="center" class=ftitle>' + Div1 + '</div>' + Div2 +

' </td>' +

' </tr>' +

'</table>';

// ******************************************************

// 在此处从头设置的打印格局,依据你的打印请求,将原显示的

// 网页的DIV内容从头组合,可以依据你本来的表格内容,去失落

// 不要打印的,你也能够能上面界说的noprint疏忽失落你不想打

// 印的器材,只挪用你要打印的内容,但如许被疏忽失落的中央将

// 打印出空,不是很雅观。表格宽度要同打印的纸张宽度婚配。

// ******************************************************

document.body.innerHTML = '<center>' + css + body + '</center>';

// ******************************************************

// 重设document.body,打印文档筹办停当

// ******************************************************

window.print();

window.history.go(0);

// ******************************************************

// 挪用打印号令,打印以后窗口内容。当你打印时实际上是一张新

// 的网页了,但网页文件仍是本来的。紧接着挪用

// window.history.go(0),再回到打印前的页面,后果相当不差

// ******************************************************

}

}

-->

</script>

<style>

@media print {

.noprint {display:none}

}

</style>

<!--//.noprint 界说了noprint,在以下不需求打印的中央到场 class="noprint"后,用window.print()打印就会疏忽-->

  好了,一切停当了,如今要做的就是挪用DP函数,假如你将完成挪用的按钮设计在统一张网页上,则直接挪用便可;假如你用了分帧办法,完成挪用的按钮是在另外一张网页上,则在DP函数的第一行到场window.focus()号令,不然打印的只是有按钮的网页。

  第四种办法,完成是一种取巧的办法。一样仍是经由过程挪用window.print()完成,只是将你要打印的内容专学生成一张网页,而打印按钮在另外一帧上。假定报表网页在mainFrame上,按钮在topFrame上,按钮挪用PrintReports()函数,PrintReports()函数以下便可完成打印任务。

function PrintReports() //topFrame网页中的函数

{

try

// *******************************************************

// 毛病处置,假如在mainFrame中的网页没有DP函数则不打印

// *******************************************************

{

window.parent.frames("mainFrame").DP();

}

catch(e)

{

alert("no object to print!");

}

}

function DP() // mainFrame网页中函数

{

window.focus();

if (window.print)

{

window.print();

}

}

我团体以为这是最便利的办法了。

  最初,假如你将IE阅读器的“文件--页面设置”中的“页眉、页角”的设置去失落,则后果更佳了。(转载)


</p>  ASP.NET和ASP的比较,技术上比较已经没什么可说的了.新一代在大部分程度来说当然是比旧一代好了. 关键看你对所做软件的理解了.因人而定.会写的话也可能比ASP.NET写得更有效率和更方便重用
再现理想 该用户已被删除
沙发
 楼主| 发表于 2015-4-26 09:10:06 | 显示全部楼层
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-14 07:46

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表