PrintToPdf
Interface AntView
Type: Method
Parameters: String resultFilePath String printSettings
Returns: nothing
Will print the currently displayed document in the WebView2 control to a file specified by variable resultFilePath.
If resultFilePath is empty then invoking this command will popup a save as dialog to determine where the user can save the file.
The printing process is asynchronously and will return immediately without waiting for the result.
If an invalid file location is passed then the print will fail silently.
You can specify a number of settings for the pdf in the printSettings variable.
The settings are set via JSON and you can pass an empty string to use the defaults.
All parameters are optional and they are as follows:
displayHeaderFooter : boolean
Display Header and Footer.
Defaults to false
footerURI : string
The URI in the footer, when displayHeaderFooter is enabled.
If set to an empty string then the footer is also empty.
Defaults to URI of the current document.
headerTitle : string
The Title in the header, when displayHeaderFooter is enabled.
If set to an empty string then the header is also empty.
Defaults to the title of the current document.
landscape : boolean
Page orientation which is portrait or landscape.
Defaults to false
marginBottom : number
The bottom margin in inches, cannot be less than 0.
Defaults to 1 cm, or ~ 0.4 inches.
marginLeft : number
The left margin in inches, cannot be less than 0.
Defaults to 1 cm, or ~ 0.4 inches
marginRight : number
The right margin in inches, cannot be less than 0.
Defaults to 1 cm, or ~ 0.4 inches
marginTop : number
The top margin in inches, cannot be less than 0.
Defaults to 1 cm, or ~ 0.4 inches
pageHeight : number
The page height in inches, must be greater than 0.0.
Defaults to 11.0
pageWidth : number
The page width in inches, must be greater than 0.0.
Defaults to 8.5
printBackground : boolean
Print background colors and images.
Defaults to false
printSelectionOnly : boolean
Print only what the user has selected in the document.
Defaults to false
scale : number
A scale factor used for rendering, must be between 0.1 and 2.0.
This mostly affects the text size.
Defaults to 1.0
Here's an example of how calling TextToPdf looks like in DataFlex:
Procedure OnClick
String sFilePath
String sSettings
Move "" To sFilePath // not specifying a path+filename will popup a file save as dialog
Move ' { ' to sSettings
Append sSettings '"displayHeaderFooter" : true, '
Append sSettings '"headerTitle" : "AntView PrintToPdf Demo", '
Append sSettings '"printBackground" : true, '
Append sSettings '"scale" : 0.5 '
Append sSettings ' }'
Send ComPrintToPdf of oEdgeWebBrowser sFilePath sSettings
End_Procedure
Beware of correctly formatting the JSON, or else changing the pdf settings do not work.
That means double-quote characters around the name in the JSON name/value pair and a comma between those, except for the last name/value pair.
Eg. the JSON above looks like this as a string (line breaks added for readability):
' { "displayHeaderFooter" : true,
"headerTitle" : "AntView PrintToPdf Demo",
"printBackground" : true,
"scale" : 0.5
}'
There's a OnPrintToPdfCompleted event that triggers when the printing completes.
Known issue: If you call PrintToPdf directly from the OnNavigationCompleted event, then you must add a 2 second wait before calling the PrintToPdf method. See also the following WebView2 github issue 1974. This issue was closed and reported as fixed at June 8, 2022.
AntView - The MS Edge WebView2 ActiveX control Date last changed: 09/25/2024