设为首页
加入收藏
帮助中心
首页 | 红盾通告 | 信息中心 | ASP技术 | 数据库 | 网页设计 | 网管专栏 | OICQ攻略 | 墨客频道 | 网站运营 |
当前位置:首页 >> ASP技术 >> 打印相关 >> 正文
最新信息
·关于网页中实现套打得解决…
·VC、IE、ASP环境下打印、预…
·弹出打印窗口,去掉网址显…
·ASP环境下轻松实现报表的打…
·在WEB环境下打印报表的cry…
·IE6.0打印机制解析
·巧用FileSystem组件实现WE…
·调用Word打印...
·ASP中实现网络打印功能
·关于在页面中解决打印的几…
资料搜索
热点信息
·关于网页中实现套打得解决…
·如何在ASP程序中打印Acces…
·弹出打印窗口,去掉网址显…
·VC、IE、ASP环境下打印、预…
·打印网页时怎么去掉页眉页…
·打印Web的完全技术版
·调用Word打印...
·WEB应用中报表打印的实现
·关于在页面中解决打印的几…
·以前收集的一些资料---如何…
推荐信息
·如何在ASP程序中打印Acces…
·弹出打印窗口,去掉网址显…
·打印Web的完全技术版
·在ASP程序中打印Excel报表…
·关于客户端用ASP参生报表(…
·WEB打印大全
·打印网页时怎么去掉页眉页…


Google
 
利用http组件来实现页面打印的一种方法
〖编辑:Cloudy | 浏览:人次〗

HTTP组件,我所知道的有ASPHTTP,ASPTEAR等等,这里我们要用的是比尔的XMLHTTP,如果你机器上没有,可以到这里下载

http://www.microsoft.com/data 下载mdac2.6

http://msdn.microsoft.com/workshop/xml/index.asp 下载msxml

象大多数我们看到的页面一样,比如一个新闻具体内容页面,该页面有个连接叫打印本页,点进去以后,并不是立即打印(当然也可以做到,我指的是选择性打印),而是出现一个去掉一些头尾等无关信息的文件,这里也许有个打印连接,也许要你自己动手了。

我们的思路是这样的,用HTTP组件获得该页面的信息,然后用一些方法比如我们可以采用正则表达式来分离我们想要的和不想要的东西。我们用HTML的标签来剔除我们不想要的内容,比如:

<!-- START PPOMIT -->
<table>
  <tr>
    <td><a href="/home">home page</a></td>
  </tr>
  <tr>
    <td><a href="/support">support</a></td>
  </tr>
  <tr>
    <td><a href="/contact">contact us</a></td>
  </tr>
  <tr>
    <td><a href="/products">Products</a></td>
  </tr>
</table>
<!-- END PPOMIT -->

当然,还需要提供一个打印连接,我们用JSCRIPT来做。
<script Language="JavaScript">
<!-- hide from old browsers
  // ppb and ppe are the start and end of the dynamic link
  // window.location.href will refer to the current URL of the page
  // it's nice to make it open in a new window too!  i.e. target=_blank
    
    var ppb = "<a href=/print/printpage.asp?ref=";
     var ppe = " target=_blank>Print This Page</a><br>";
     document.write(ppb + window.location.href + ppe);

//end -->
</script>

这里我们传递了一个当前路径给打印页面,请看呆会的代码

先举个xmlhttp的简单例子
<%

Function GetHTML(strURL)
  Dim objXMLHTTP, strReturn
  Set objXMLHTTP = SErver.CreateObject("Microsoft.XMLHTTP")

  objXMLHTTP.Open "GET", strURL, False
  objXMLHTTP.Send

  strReturn = objXMLHTTP.responseText
  Set objXMLHTTP = Nothing

  GetHTML = strReturn
End Function

' Write it:
Response.Write GetHTML("http://www.topcoolsite.com/")

' Download it:
Response.ContentType = "application/x-msdownload"
Response.AddHeader "Content-Disposition", "filename=Something.asp"
Response.BinaryWrite GetHTML("http://www.topcoolsite.com/")

%>
运行上面这段代码就能看到我的个人网站了,:)

接下来我们步入正题,我们创建一个printpage.asp
一旦你在合适的位置插入了注释标记,剩下来的只是代码的事了

<%
option explicit
Response.Buffer = True

'定义变量,正则表达式,XMLHTTP,路径

Dim RefPage, objXMLHTTP, RegEx
  
RefPage = Request.QueryString("ref")
if RefPage = "" then
   response.write "<h3>非法路径</h3>"
   response.end
end if

Set objXMLHTTP = Server.CreateObject("Microsoft.XMLHTTP")


objXMLHTTP.Open "GET", RefPage, False
objXMLHTTP.Send

RefPage = objXMLHTTP.responseText

Set RegEx = New RegExp
RegEx.Global = True


'利用正则表达式来干活
RegEx.Pattern =  "<!-- START PPOMIT -->"

RefPage = RegEx.Replace(refpage,( chr(253) ))

RegEx.Pattern = "<!-- END PPOMIT -->"

RefPage = RegEx.Replace(refpage,( chr(254) ))

RegEx.Pattern = chr(253) & "[^" & chr(254) & "]*" & chr(254)

RefPage = RegEx.Replace(refpage, " " )

Set RegEx = Nothing
Set objXMLHTTP = Nothing

Response.Write RefPage
%>

如果你的脚本引擎版本在5.5或以上
正则表达式的pattern可以这样写

<!-- START PPOMIT -->(.*?)<!-- END PPOMIT --> 

对了,还要规范你的html代码,记得关闭对应,如<table></table>,不然会闹笑话的……:),你可以把头尾、导航栏等等放在单独的文件里,那样插入注释标记就很简单了。


录入时间:2006-07-25 21:36:18 [打印本页] [关闭窗口] [返回顶部]
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

Copyright © 2006-2014 0733168.Com Inc All Rights Reserved
关于我们 | 广告合作 | 联系我们 | 法律声明 | 友情链接 | 意见反馈
本站所收录信息、社区话题、及本站所做之广告均属其个人行为,与本站立场无关
湘ICP备06008436号