Private Sub document_PrintPage(ByVal sender As Object, _
ByVal e As System.Drawing.Printing.PrintPageEventArgs) _
Handles docToPrint.PrintPage
' Insert code to render the page here.
' This code will be called when the control is drawn.
' The following code will render a simple
' message on the printed document.
'Dim text As String = "In document_PrintPage method."
'Dim printFont As New System.Drawing.Font _
' ("Arial", 35, System.Drawing.FontStyle.Regular)
'' Draw the content.
'e.Graphics.DrawString(text, printFont, _
' System.Drawing.Brushes.Black, 10, 10)
End Sub
我有显示打印机对话框的代码,该对话框将调用此过程来呈现要打印的文档。我要打印的文档可以通过URL作为HTML网页访问,并且该网页可以打印。上面的示例代码仅用于呈现字符串,不会满足我的需要。我在考虑使用system.drawing.graphics.drawimage
,如果可以的话。有什么想法吗?我很难完全想象将HTML页面转换为图像数据类型的过程。如果没有必要,那就更好了。
您不能使用System有什么原因吗。Windows。表格。网络浏览器?
它有一个Print((方法,这似乎会让你的任务更容易。8-(
将HTML渲染到图像中进行打印并不是一项简单的任务。无论如何,你需要利用一个知道如何做到这一点的库
首先,我更改了打印机对话框调用,使其通过使用javascript函数运行客户端。这很容易。下一步是将要打印的区域隔离到矩形中,该矩形包含作为源加载到iframe中的卫星地图。根据我的理解,javascript打印机对话框会将整个页面转储到打印机,我尝试了几件事,最终将iframe包含在asp面板上自己的div部分中,该部分具有调用打印机对话框和iframe的html按钮标记。这只够打印地图了。实现这一点可能需要做的一件事是,你需要使用子域来欺骗浏览器,使其认为iframe主机和文档主机在同一个域上——我已经与地图公司和我们当地的托管公司合作完成了这一部分。当我单击打开打印机对话框时,唯一要做的就是让iframe保持地图的选定缩放状态。我将发布另一个问题,征求人们对如何让asp面板冻结其视图的意见,或者其他任何技巧。