In many sites, you might need to have a printable version of HTML pages. Typically, this version lacks the design elements of the layout like navigation, top bar etc. An example can be seen in this site.
I use a PHP script for this purpose. It seems to be quite popular. So, I decided to write an ASP version of it.
To use it, save the code as an ASP file. From other pages, make a link to this ASP file. Click on that link and ASP script reads in the HTML, strips the layout elements and shows the stripped version.
In your HTML files, you MUST place your content within two comments like
<!-- content_starts_here //-->
<!-- content_ends_here //-->
Denis Mekinda adds:
"
If you try to use some non standard characters you will get garbage!
The solution is to use UTF-8 encoding on all pages , since xml parser from MS
parses in this format blindly!
See
. Thanks Denis!
responseText
property in
this MSDN article.
"
<%@LANGUAGE=VBScript%> <%Option Explicit%> <% Response.Buffer = True Response.CacheControl = "Private" Response.Expires = -1 'We don't want this to be cached anywhere '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' print.asp - Make a link to this page from your page. ' Assumes that your page has printable content within two comments ' content_starts_here and content_ends_here. Gets the page, strips of the ' the content, gets the BaseURL and prints the stripped out page ' Needs MSXML 3.0 or above installed ' ' S Babu. vsbabu-removethis@vsbabu.org. 05/23/2001 ' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' If Request.ServerVariables("HTTP_REFERER") <> "" Then ' if this didn't come from anywhere, ignore. Dim strContent Dim xml_http Set xml_http = Server.CreateObject("Microsoft.XMLHTTP") xml_http.Open "GET", Request.ServerVariables("HTTP_REFERER"), False xml_http.Send strContent = xml_http.responseText Set xml_http = Nothing Dim regex Dim reg_matches Dim strtitle Dim strbody 'On Error Resume Next ' Get the body Set regex = New RegExp regex.Pattern = "<!--\s+content_starts_here\s+\/\/-->(.|\n)*<!--\s+content_ends_here\s+\/\/-->" regex.IgnoreCase = True regex.Global = True strbody = strContent Set reg_matches = regex.Execute(strbody) If reg_matches.Count > 0 Then strbody = reg_matches.Item(0).Value End If Set regex = Nothing Set reg_matches = Nothing ' Get the title Set regex = New RegExp regex.Pattern = "<title>(.|\n)*<\/title>" regex.IgnoreCase = True regex.Global = True strtitle = strContent Set reg_matches = regex.Execute(strtitle) If reg_matches.Count > 0 Then strtitle = reg_matches.Item(0).Value End If Set regex = Nothing Set reg_matches = Nothing ' if we didn't get any different content, regex failed. So print ' out the existing content If strContent = strbody Then Response.Write strContent Else 'Print the stripped version Response.Write "<html><head>" & strtitle & "</head><body>" & vbCrLf Response.Write "<base href=""" & GetBaseHref(Request.ServerVariables("HTTP_REFERER")) &""">" & vbCrLf Response.Write strbody Response.Write "<HR><center>" & Request.ServerVariables("HTTP_REFERER") & "</center></body></html>" End If End If '''Given a full URL, gets the base URL. Assumes that URLs to the '''default document is atleast terminated by / Function GetBaseHref(strURL) Dim arrParts, i arrParts = split(strURL,"/") GetBaseHref = "" For i = 0 To (UBound(arrParts)-1) GetBaseHref = GetBaseHref & arrParts(i) & "/" Next End Function %>
Since you are seeing this, it means that your browser does not support cascading style sheets. Please download and use one of the many browsers that support web standards.