Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何为当前页面服务器端保存HTML的打印版本_Asp.net_Printing - Fatal编程技术网

Asp.net 如何为当前页面服务器端保存HTML的打印版本

Asp.net 如何为当前页面服务器端保存HTML的打印版本,asp.net,printing,Asp.net,Printing,我有一些页面,我想保存浏览器将呈现的HTML的打印版本。我需要做这个服务器端,因为我想把它转换成PDF格式,然后把它嵌入到电子邮件中。 我想打印的这些页面在母版页的页眉中有以下内容 <link media="all" href="../css/stylenav.css" type="text/css" rel="stylesheet" /> <link media="screen" href="../css/stylescreen.css" type="text/css" re

我有一些页面,我想保存浏览器将呈现的HTML的打印版本。我需要做这个服务器端,因为我想把它转换成PDF格式,然后把它嵌入到电子邮件中。 我想打印的这些页面在母版页的页眉中有以下内容

<link media="all" href="../css/stylenav.css" type="text/css" rel="stylesheet" />
<link media="screen" href="../css/stylescreen.css" type="text/css" rel="stylesheet" />
<link media="print" href="../css/styleprint.css" type="text/css" rel="stylesheet" />
谢谢

编辑: 这里有更多的细节。
我正在使用ASPOSE库将流转换为文档,然后再转换为PDF。这部分工作正常,但不是打印出来的内容。

您可以向页面传递一个参数,并将屏幕PDF替换为代码中的打印PDF,否则不管结果如何,您仍然会得到屏幕版本。在这种情况下,不要针对媒体,只需使用打印样式表即可。

我认为问题不在于发布的代码。您的HttpWebResponse包含浏览器将看到的相同HTML,包括指向三个样式表的链接。您必须在稍后的代码中执行某些操作以将til HTML呈现为PDF,并且您似乎错误地选择了屏幕媒体而不是打印媒体。我将尝试此操作。由于所有页面都使用相同的母版页,因此这可能会起作用。我只需要看看如何修改这些css链接。
Dim url As String = HttpContext.Current.Request.Url.AbsoluteUri
'Prepare Request
Dim request As System.Net.WebRequest = System.Net.WebRequest.Create(url)
request.Method = "GET"
request.ContentType = "text/html"
'Execute the request
Dim response As System.Net.WebResponse = request.GetResponse()
'Read data 
Dim ResponseStream As Stream = response.GetResponseStream()
'Write content into the MemoryStream
Dim resReader As New BinaryReader(ResponseStream)
Dim docStream As New MemoryStream(resReader.ReadBytes(CInt(response.ContentLength)))
Dim doc As New Document(docStream)
'Save document
doc.Save("out.pdf", SaveFormat.Pdf, SaveType.OpenInApplication, Page.Response)