Webview2 Дополнительные документы-Печать в киоске

#vb.net #winforms #printing #arguments #webview2

Вопрос:

Я пытаюсь печатать с помощью элемента управления Webview2.

Я могу печатать с помощью диалогового окна, используя следующий код:

  Await WebView_Browser1.CoreWebView2.ExecuteScriptAsync("window.print();")
 

Но я хотел бы печатать молча.
С Edge мы можем использовать параметр —Печать в киоске, как в Chrome.

Это свойство, которое я ищу: CoreWebView2EnvironmentOptions.Дополнительные аргументы

Но как я могу запустить элемент управления Webview2, используя эти параметры?

Я просмотрел несколько примеров, подобных этому: Ссылка, но преобразование их в VB.NET использование https://converter.telerik.com/ похоже, не работает. Возможно ли это с помощью WinForms? Спасибо за уделенное время!

Это то, что у меня есть до сих пор:

     Dim opts As New CoreWebView2EnvironmentOptions With {.AdditionalBrowserArguments = "--kiosk-printing"}
    Dim env As CoreWebView2Environment = Await CoreWebView2Environment.CreateAsync(Nothing, Nothing, Nothing), opts)
    Dim tsk As Task = WebView_Browser1.EnsureCoreWebView2Async(env)
 

Но выдает мне ошибку: «Ожидание» может использоваться только в асинхронном методе. Подумайте о том, чтобы пометить этот метод модификатором «Асинхронный» и изменить его тип возврата на «Задача».
И я не знаю, как это использовать, не мог бы кто-нибудь привести мне пример?

Обновить

Это текущий код, который у меня есть, но он не работает.

 Private Async Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Await InitializeAsync()
End Sub

Private Async Function InitializeAsync() As Task

Dim opts As New CoreWebView2EnvironmentOptions With {.AdditionalBrowserArguments = "--kiosk-printing"}
Dim env = Await CoreWebView2Environment.CreateAsync(Nothing, Nothing, opts)

AddHandler WebView_Browser1.CoreWebView2.FrameNavigationCompleted, AddressOf WebView_Browser1_FrameNavigationCompleted
Await WebView_Browser1.EnsureCoreWebView2Async(env)
End Function

Private Sub WV_CoreWebView2Ready1(sender As Object, e As EventArgs) Handles WebView_Browser1.CoreWebView2InitializationCompleted
WebView_Browser1.CoreWebView2.Navigate("https://www.google.com")
End Sub
 

Я не знаю, как использовать аргументы с моим WebView_Browser1.
Может кто-нибудь, пожалуйста, привести мне пример того, как с этим бороться?
Спасибо!

Комментарии:

1. dim options = new CoreWebView2EnvironmentOptions("--proxy-server=""ProxyName:Port""") dim env = await CoreWebView2Environment.CreateAsync(Nothing, Nothing, options) await [WebView2 Instance].EnsureCoreWebView2Async(env)

2. Спасибо! Но где я могу разместить это в Form_load? и среда ожидания CoreWebView2Environment выдает мне ошибку: «Ожидание» может использоваться только в асинхронном методе. Подумайте о том, чтобы пометить этот метод модификатором «Асинхронный» и изменить его тип возврата на «Задача».

3. Отметьте обработчик событий «Form_load» Async тоже.

4. Вам нужно использовать Async метод. Какой метод, зависит от того, где / когда вы инициализируете экземпляр WebView2. Если вы используете форму, то переопределите OnLoad() или даже подпишитесь на Load событие; используйте любой из этих методов Async . Обработчики событий могут быть void Sub ), не нужно возвращать задачу .

5. Спасибо за ваш комментарий, я обновил вопрос.