дополнительные опции в Chrome headless print-to-pdf

Мне нужна помощь еще раз. Я пытаюсь напечатать страницу в pdf, используя функцию headless chrome. Однако верхний и нижний колонтитулы присутствуют в pdf. Я обнаружил, что этот вариант реализован в Devtools.

https://chromedevtools.github.io/devtools-protocol/tot/Page/#method-printToPDF

Однако я не могу найти, как я могу использовать эти параметры в CLI. Также можно вызвать Devtools из селена?

Кроме того, как я могу вызвать страницу.PrintToPDF в инструментах Dev. Я попытался запустить команду в консоли. Показывается, что страница не определена.

Ответ 1

Добавьте этот CSS на страницу, которую вы создаете, в PDF файл, чтобы удалить Chrome Headless с помощью Header and Footer.

CSS:

@media print {
  @page { margin: 0; }
  body { margin: 1.6cm; }
}

Вы должны отформатировать свою команду, как показано ниже, для создания PDF:

"C:\PATH\TO\CHROME\EXECUTABLE\FILE", "--headless","--disable-gpu","--print-to-pdf=" + directory path to where you want the file to go followed by the desired file name/fileName.pdf,"--no-margins", "the path to the file you want turned into a pdf"

Пример 1:

C:\chrome-win/chrome --headless --disable-gpu --print-to-pdf=C:\user\fileName.pdf --no-margins C:\Projects\index.html

Пример 2:

Вы также можете протестировать эту функциональность, перейдя в свою командную строку в папку, содержащую исполняемый файл Chrome, и выполните следующую команду:

chrome --headless --disable-gpu --print-to-pdf https://www.chromestatus.com/

edit: исправлена опечатка

Ответ 2

"/path/to/google-chrome": это путь к Google Chrome.

'--headless ': браузер Chrome в автономной среде без полноценного пользовательского интерфейса браузера

'--run-all-compositor-stages-before-draw': предотвращает создание PDF файла до того, как все данные будут отображены (после того, как все данные будут отображены, будет создан PDF файл).

'--virtual-time-budget = x: задерживает процесс создания PDF, здесь x будет миллисекундами.

'--print-to-pdf': этот флаг создает pdf данного URL.

URL: URL веб-страницы.

Форматирование страницы PDF (с использованием CSS) Добавление этого (в CSS файлы):

 @media print {
            @page { margin: 0mm 0mm 0mm 0mm;
            size:8in 9.5in;
            }
            }

Вышеприведенный код CSS не влияет на отображение веб-страницы, но влияет только на форматирование страницы в PDF.

Ответ 3

Я пытаюсь получить доступ к PDF из браузера Chrome без головы.

Ниже приведена команда, которую я пытаюсь нажать из командной строки (администратор). Я вижу, как создается PDF файл. Тем не менее, я не вижу никаких данных в PDF. URL в приведенной ниже команде требуется пароль для доступа, когда я открываю его в браузере. Будет очень полезно, если вы сможете сообщить мне, если мне нужно использовать имя пользователя, пароль (если да, то как и что это за команда). Большое спасибо !!

"% chrome%" --headless --disable-gpu --print-to-pdf = "C:\Users\i077219\Desktop\temp3.pdf" https://ipaddress/s/opu/odata/sp/CA_OC_OUTPUT_REQUEST_SRV/Предметы (ApplObjectType = 'BILLING_DOCUMENT', ApplObjectId = '0090004410', Itemid = '1')/GetDocument/$ значение /