Печать в pdf с использованием chrome без головы на c # Приложение ChromeDevTools идет в режиме останова - PullRequest
0 голосов
/ 29 апреля 2018

Я пытаюсь создать конвертер из HTML в PDF, используя Chrome print to PDF. опция.

Я уже пробовал программу командной строки для Chrome без головы, но я не могу добавить какие-либо настройки, поэтому я пытаюсь сейчас использовать M asterDevs.ChromeDevTools.

Моя проблема в том, что приложение переходит в режим прерывания каждый раз, когда оно проходит ожидание, и я действительно не понимаю, в чем может быть проблема.

using System;
using MasterDevs.ChromeDevTools.Protocol.Chrome.Page;
using System.IO;
using System.Linq;
using System.Threading;
using MasterDevs.ChromeDevTools.Protocol.Chrome.DOM;
using Task = System.Threading.Tasks.Task;
using MasterDevs.ChromeDevTools;

namespace ConsoleApp4
{
    internal class Program
    {
        const int ViewPortWidth = 1440;
        const int ViewPortHeight = 900;
        private static void Main(string[] args)
        {
            Task.Run(async () =>
            {


                // STEP 1 - Run Chrome
                var chromeProcessFactory = new ChromeProcessFactory(new StubbornDirectoryCleaner());
                using (var chromeProcess = chromeProcessFactory.Create(9222, true))
                {
                    // STEP 2 - Create a debugging session
                    var sessionInfo = (await chromeProcess.GetSessionInfo()).LastOrDefault();
                    var chromeSessionFactory = new ChromeSessionFactory();
                    var chromeSession = chromeSessionFactory.Create(sessionInfo.WebSocketDebuggerUrl);

                    // STEP 3 - Send a command
                    //
                    // Here we are sending a commands to tell chrome to set the viewport size 
                    // and navigate to the specified URL
                    //await chromeSession.SendAsync(new SetDeviceMetricsOverrideCommand
                    //{
                    //    Width = ViewPortWidth,
                    //    Height = ViewPortHeight,
                    //    Scale = 1
                    //});

                    var navigateResponse = await chromeSession.SendAsync(new NavigateCommand
                    {
                        Url = "http://www.google.com"
                    });
                    Console.WriteLine("NavigateResponse: " + navigateResponse.Id);

                    var printResponse = await chromeSession.SendAsync(new PrintToPDFCommand {
                        Landscape = true
                        , DisplayHeaderFooter = true
                        , MarginBottom = 0
                        , MarginTop = 0
                        , MarginRight = 0
                        , MarginLeft = 0
                    });

                    Console.WriteLine("NavigateResponse: " + navigateResponse.Id);

                    Console.WriteLine("Exiting ..");
                }
            }).Wait();
        }
    }
}
...