打印网页

本节内容可参考示例文件"CaseStudy\WebViewer\打印网页.Table"

尽管Foxtable提供了多种报表输出工具,但是即使是专业报表和PDFCreator,在呈现方面也无法和网页相比,所以WebViewer其实也是一个新的强大无比的报表输出工具。

WebViewer提供了以下打印方法用于打印网页或输出PDF:

ShowPrintUI

显示打印对话框,语法:

ShowPrintUI(DialogKind)

DialogKind参数可选,如果省略,则调用浏览器的打印预览对话框,如果设置为CoreWebView2PrintDialogKind.System,则调用系统的打印对话框。

例如使用浏览器的打印预览窗口:

Dim wv As WebViewer = e.Form.Controls("WebViewer1").WebViewer
 wv.CoreWebView2.ShowPrintUI()

使用系统打印对话框:

Dim wv As WebViewer = e.Form.Controls("WebViewer1").WebViewer
 wv.CoreWebView2.ShowPrintUI(CoreWebView2PrintDialogKind.System)

PrintAsync

用于以异步方式打印当前网页,语法:

PrintAsync(PrintSettings)

PrintSettings参数可选,CoreWebView2PrintSettings类型,用于设置打印选项,后面会用表格列出所有打印选项。

PrintAsync方法的返回值为CoreWebView2PrintStatus,用于判断是否打印成功,以及打印失败的原因。

例如:

''' Async
Dim
wv As WebViewer = e.Form.Controls("WebViewer1").WebViewer
Dim
settings = wv.CoreWebView2.Environment.CreatePrintSettings() '创建打印设置
' A4
纸英寸值 (210mm = 8.27英寸, 297mm = 11.69英寸)
settings.MediaSize = CoreWebView2PrintMediaSize.Custom
settings.PageWidth = 8.27
settings.PageHeight = 11.69
settings.Orientation = CoreWebView2PrintOrientation.Portrait
settings.ShouldPrintBackgrounds =
True 
Dim
printStatus = Await wv.CoreWebView2.PrintAsync(settings)
Dim
statusMessage As String
Select
Case printStatus
   
Case CoreWebView2PrintStatus.Succeeded
        statusMessage =
"打印成功"
   
Case CoreWebView2PrintStatus.PrinterUnavailable
        statusMessage =
"打印机不可用"
   
Case Else
        statusMessage =
"打印失败"
End
Select
MessageBoxA.Show(statusMessage)

提醒:没有纸张类型的选择,所有的纸张都要自己换算成英寸单位后设置。

PrintToPdfAsync

用于以异步方式将网页打印为PDF,语法:

PrintToPdfAsync(FilePath,PrintSettings)

FilePath:      PDF文件路径和名称
PrintSettings: CoreWebView2PrintSettings类型,用于设置打印选项,后面会用表格列出所有打印选项。

返回值为逻辑型,打印成功返回True,否则返回False。

例如:

''' Async
Dim
wv As WebViewer = e.Form.Controls("WebViewer1").WebViewer
Dim
settings = wv.CoreWebView2.Environment.CreatePrintSettings()
' A4
纸英寸值 (210mm = 8.27英寸, 297mm = 11.69英寸)
settings.MediaSize = CoreWebView2PrintMediaSize.Custom
settings.PageWidth = 8.27
settings.PageHeight = 11.69
settings.ScaleFactor = 1.0
' 100% 缩放
settings.Orientation = CoreWebView2PrintOrientation.Portrait
settings.ShouldPrintBackgrounds =
True
Dim
pdffile As String = ProjectPath & "\test.pdf"
Dim
success = Await wv.CoreWebView2.PrintToPdfAsync(pdffile, settings)
If
success Then
    MessageBoxA.Show(
"PDF保存成功: " & pdffile)
Else

    MessageBoxA.Show(
"PDF保存失败")
End
If

附录

CoreWebView2PrintSettings类用于设置打印选项,其属性有:

 

属性名称 类型 说明
Collation CoreWebView2PrintCollation 打印机分页方式,用于控制多份打印时的页面排序(如逐份打印或逐页打印)。
ColorMode CoreWebView2PrintColorMode 打印机色彩模式,例如 Color(彩色)或 Grayscale(灰度)。
Copies Integer 打印份数,最小值为 1,最大值为 999。
Duplex CoreWebView2PrintDuplex 打印机双面打印设置,例如 OneSided(单面)、TwoSidedLongEdge(长边翻转)或 TwoSidedShortEdge(短边翻转)。
FooterUri String 如果 ShouldPrintHeaderAndFooter 为 True,则页脚显示的 URI(通常为页面地址或自定义文本)。
HeaderTitle String 如果 ShouldPrintHeaderAndFooter 为 True,则页眉显示的标题文本。
MarginBottom Double 下边距,单位为英寸。
MarginLeft Double 左边距,单位为英寸。
MarginRight Double 右边距,单位为英寸。
MarginTop Double 上边距,单位为英寸。
MediaSize CoreWebView2PrintMediaSize 打印机纸张大小。可选值包括 Default(默认)、Custom(自定义)。
Orientation CoreWebView2PrintOrientation 打印方向,可选 Portrait(纵向)或 Landscape(横向)。
PageHeight Double 纸张高度,单位为英寸。
PageRanges String 要打印的页码范围,格式如 "1-5, 8, 11-13"。默认为空字符串,表示打印所有页面。
PagesPerSide Integer 每张纸上打印的页面数(N-up 打印),可选值为 1、2、4、6、9、16。
PageWidth Double 纸张宽度,单位为英寸。
PrinterName String 要使用的打印机名称。如果未指定,则使用默认打印机。
ScaleFactor Double 页面内容的缩放比例,值必须在 0.1 到 2.0 之间。例如 1.0 表示 100% 原始大小。
ShouldPrintBackgrounds Boolean 是否打印背景颜色和图像。
ShouldPrintHeaderAndFooter Boolean 是否打印页眉和页脚。
ShouldPrintSelectionOnly Boolean 是否仅打印当前选中的内容。


本页地址:http://www.foxtable.com/webhelp/topics/6395.htm