Compartilhar via


interface ICoreWebView2PrintSettings2

interface ICoreWebView2PrintSettings2
  : public ICoreWebView2PrintSettings

Settings used by the Print method.

Summary

Members Descriptions
get_Collation Printer collation.
get_ColorMode Printer color mode.
get_Copies Number of copies to print.
get_Duplex Printer duplex settings.
get_MediaSize Printer media size.
get_PageRanges Page range to print.
get_PagesPerSide Prints multiple pages of a document on a single piece of paper.
get_PrinterName The name of the printer to use.
put_Collation Set the Collation property.
put_ColorMode Set the ColorMode property.
put_Copies Set the Copies property.
put_Duplex Set the Duplex property.
put_MediaSize Set the MediaSize property.
put_PageRanges Set the PageRanges property.
put_PagesPerSide Set the PagesPerSide property.
put_PrinterName Set the PrinterName property.

Applies to

Product Introduced
WebView2 Win32 1.0.1518.46
WebView2 Win32 Prerelease 1.0.1549

Members

get_Collation

Printer collation.

public HRESULT get_Collation(COREWEBVIEW2_PRINT_COLLATION * value)

See COREWEBVIEW2_PRINT_COLLATION for descriptions of collation. The default value is COREWEBVIEW2_PRINT_COLLATION_DEFAULT.

Printing uses default value of printer's collation if an invalid value is provided for the specific printer.

This value is ignored in PrintToPdfStream method.

get_ColorMode

Printer color mode.

public HRESULT get_ColorMode(COREWEBVIEW2_PRINT_COLOR_MODE * value)

See COREWEBVIEW2_PRINT_COLOR_MODE for descriptions of color modes. The default value is COREWEBVIEW2_PRINT_COLOR_MODE_DEFAULT.

Printing uses default value of printer supported color if an invalid value is provided for the specific printer.

get_Copies

Number of copies to print.

public HRESULT get_Copies(INT32 * value)

Minimum value is 1 and the maximum copies count is 999. The default value is 1.

This value is ignored in PrintToPdfStream method.

get_Duplex

Printer duplex settings.

public HRESULT get_Duplex(COREWEBVIEW2_PRINT_DUPLEX * value)

See COREWEBVIEW2_PRINT_DUPLEX for descriptions of duplex. The default value is COREWEBVIEW2_PRINT_DUPLEX_DEFAULT.

Printing uses default value of printer's duplex if an invalid value is provided for the specific printer.

This value is ignored in PrintToPdfStream method.

get_MediaSize

Printer media size.

public HRESULT get_MediaSize(COREWEBVIEW2_PRINT_MEDIA_SIZE * value)

See COREWEBVIEW2_PRINT_MEDIA_SIZE for descriptions of media size. The default value is COREWEBVIEW2_PRINT_MEDIA_SIZE_DEFAULT.

If media size is COREWEBVIEW2_PRINT_MEDIA_SIZE_CUSTOM, you should set the PageWidth and PageHeight.

Printing uses default value of printer supported media size if an invalid value is provided for the specific printer.

This value is ignored in PrintToPdfStream method.

get_PageRanges

Page range to print.

public HRESULT get_PageRanges(LPWSTR * value)

Defaults to empty string, which means print all pages. If the Page range is empty string or null, then it applies the default.

The PageRanges property is a list of page ranges specifying one or more pages that should be printed separated by commas. Any whitespace between page ranges is ignored. A valid page range is either a single integer identifying the page to print, or a range in the form [start page]-[last page] where start page and last page are integers identifying the first and last inclusive pages respectively to print. Every page identifier is an integer greater than 0 unless wildcards are used (see below examples). The first page is 1.

In a page range of the form [start page]-[last page] the start page number must be larger than 0 and less than or equal to the document's total page count. If the start page is not present, then 1 is used as the start page. The last page must be larger than the start page. If the last page is not present, then the document total page count is used as the last page.

Repeating a page does not print it multiple times. To print multiple times, use the Copies property.

The pages are always printed in ascending order, even if specified in non-ascending order.

If page range is not valid or if a page is greater than document total page count, ICoreWebView2PrintCompletedHandler or ICoreWebView2PrintToPdfStreamCompletedHandler handler will return E_INVALIDARG.

The following examples assume a document with 20 total pages.

Example Result Notes
"2" Page 2
"1-4, 9, 3-6, 10, 11" Pages 1-6, 9-11
"1-4, -6" Pages 1-6 The "-6" is interpreted as "1-6".
"2-" Pages 2-20 The "2-" is interpreted as "pages 2 to the end of the document".
"4-2, 11, -6" Invalid "4-2" is an invalid range.
"-" Pages 1-20 The "-" is interpreted as "page 1 to the end of the document".
"1-4dsf, 11" Invalid
"2-2" Page 2

The caller must free the returned string with CoTaskMemFree. See API Conventions

get_PagesPerSide

Prints multiple pages of a document on a single piece of paper.

public HRESULT get_PagesPerSide(INT32 * value)

Choose from 1, 2, 4, 6, 9 or 16. The default value is 1.

get_PrinterName

The name of the printer to use.

public HRESULT get_PrinterName(LPWSTR * value)

Defaults to empty string. If the printer name is empty string or null, then it prints to the default printer on the user OS.

This value is ignored in PrintToPdfStream method.

The caller must free the returned string with CoTaskMemFree. See API Conventions

put_Collation

Set the Collation property.

public HRESULT put_Collation(COREWEBVIEW2_PRINT_COLLATION value)

put_ColorMode

Set the ColorMode property.

public HRESULT put_ColorMode(COREWEBVIEW2_PRINT_COLOR_MODE value)

put_Copies

Set the Copies property.

public HRESULT put_Copies(INT32 value)

Returns E_INVALIDARG if an invalid value is provided and the current value is not changed.

put_Duplex

Set the Duplex property.

public HRESULT put_Duplex(COREWEBVIEW2_PRINT_DUPLEX value)

put_MediaSize

Set the MediaSize property.

public HRESULT put_MediaSize(COREWEBVIEW2_PRINT_MEDIA_SIZE value)

put_PageRanges

Set the PageRanges property.

public HRESULT put_PageRanges(LPCWSTR value)

put_PagesPerSide

Set the PagesPerSide property.

public HRESULT put_PagesPerSide(INT32 value)

Returns E_INVALIDARG if an invalid value is provided, and the current value is not changed.

Below examples shows print output for PagesPerSide and Duplex.

PagesPerSide Total pages Two-sided printing Result
1 1 - 1 page on the front side.
2 1 Yes 1 page on the front side.
2 4 - 2 pages on the first paper and 2 pages on the next paper.
2 4 Yes 2 pages on the front side and 2 pages on back side.
4 4 Yes 4 pages on the front side.
4 8 Yes 4 pages on the front side and 4 pages on the back side.

put_PrinterName

Set the PrinterName property.

public HRESULT put_PrinterName(LPCWSTR value)

If provided printer name doesn't match with the name of any installed printers on the user OS, ICoreWebView2PrintCompletedHandler handler will return errorCode as S_OK and printStatus as COREWEBVIEW2_PRINT_STATUS_PRINTER_UNAVAILABLE.

Use Enum Printers to enumerate available printers.