Chrome 또는 Chromium을 사용하여 명령 줄에서 PDF로 저장하기 위해 인쇄하는 방법


43

Chrome 또는 Chromium을 사용하여 명령 줄에서 대상 "PDF로 저장"으로 인쇄 할 수 있습니까? Chrome의 내장 기능을 사용하여 html 파일을 자동으로 PDF로 변환하고 싶습니다.


@golimar 가상 프린터가 아닙니다. Chrome에는 pdf로 내보내는 옵션이 내장되어 있습니다.
ipavlic

1
PDF로 저장하기위한 내장 Chrome 스위치가 표시되지 않습니다.
Karan

@Karan 당신이 갈 때 당신 이 선택할 Print수있는 Save to PDF목적지 가 있어야 합니다. 또한 Google 지원 페이지 support.google.com/chrome/bin/…
ipavlic

2
아마도 내 이전 의견은 명확하지 않았습니다. 당신은 커맨드 라인 에서이 작업을 수행하는 방법을 알고 싶었습니다. 내가 말하고 싶은 것은 UI에서 할 수 있지만 Chrome / Chromium에는이 작업을 수행하는 명령 줄 스위치 / 매개 변수가없는 것 같습니다. 마우스 클릭이나 키 입력을 통해 다른 이름으로 저장 옵션을 트리거하는 방법을 찾아야합니다.
Karan

답변:


11

전체 웹 브라우저를 호출하는 대신 HTML 렌더링 엔진을 사용하여 작업을 수행하지 않는 이유는 무엇입니까? 사용 wkhtmltopdf를 변환을 수행 할 수 있습니다.

wktohtml

기존 웹 사이트를 PDF로 변환 할 수도 있습니다

$ wkhtmltopdf http://google.com google.pdf

참고 : 기술적으로 Chrome의 렌더링 엔진은 Blink이며 이는 웹킷의 포크입니다. Blink와 Webkit간에 공통 코드의 90 % 이상이 있으므로 비슷한 결과를 얻을 수 있습니다.


wkhtmltopdf의 소스에는 클릭 가능한 링크와 같은 중요한 기능을 가능하게하는 QtWebkit 패치가 포함되어 있습니다. 배포판의 일반적인 qtwebkit 패키지를 종속성으로 나열하면 배포판 패키지에 이러한 기능이 누락 될 수 있습니다. 소스에서 wkhtmltopdf를 설치하려면 3.7GiB의 디스크와 몇 시간이 걸립니다.
Anko

33
-1이 답변은 질문에 해당하지 않습니다. wkhtmltox는 훌륭한 도구이지만 PDF로 내보낼 때 크롬이나 파이어 폭스만큼 잘 작동하지 않습니다.
Carlos C Soto

@Anko 잘 모르겠습니다. 소스에서 wkhtmltopdf를 빌드하면 무엇을 기대할 수 있습니까?
VH-NZZ

2
정교한 CSS가 있다면 wkhtmltopdf도 쓸모가 없습니다.
MushyPeas

2
SVG는 렌더링되지 않습니다.
마르코 술라

37

크롬은 헤드리스 프로그램 을 시작했습니다 .

이를 통해 pdf를 만들 수 있습니다. 예를 들어 Windows의 경우 명령 줄을

C:\Users\{{your_username}}\AppData\Local\Google\Chrome SxS\Application>

그런 다음 명령을 누르십시오.

chrome --headless --print-to-pdf="d:\\{{path and file name}}.pdf" https://google.com

Windows에서 실행중인 기존 Chrome 인스턴스가 있으면 명령이 작동하지 않습니다. 모든 Chrome 프로세스를 먼저 종료하면 작동합니다. 이 불편을 해결하기위한 플래그가있을 수 있습니다.
John Leidegren

1
Windows 용 Chrome 버전 66.0.3359.139 (공식 빌드) (64 비트)부터 @JohnLeidegren (최소한)은 Chrome 프로세스를 중단시키지 않고 작동합니다.
naitsirhc

2
--user-data-dir="C:\Users\...\AppData\Local\Google\Chrome\User Data사용자의 Chrome 프로필에서 실행할 수 있습니다 . 예를 들어 세션 쿠키를 사용할 수 있으므로 사용자가 로그인해야하는 웹 사이트에서 컨텐츠를 내보내는 데 유용합니다.
naitsirhc

@naitsirhc 참고로, puppeteer는 좀 더 정교한 작업을 수행하려는 경우 명령 줄 항목에 대한 훌륭한 대안이라는 것을 알았습니다. 다양한 작업을 수행하는 원격 크롬에 대한 멋진 API가 있으며 버전을 관리합니다. 아주 좋아요
John Leidegren

SVG가 잘못 렌더링 됨
Marco Sulla

17

Chrome / Chromium 59 이상 버전을 사용해야합니다 MAC OS 및 Linux 사용자 만 사용할 수 있습니다.

* Windows 사용자는 여전히 버전 60까지 잠시 기다려야합니다. *

사령부 :

$ google-chrome --headless --disable-gpu --print-to-pdf=file1.pdf http://www.example.com/

$ chromium-browser --headless --disable-gpu --print-to-pdf=file1.pdf http://www.example.com/

참조 : https://developers.google.com/web/updates/2017/04/headless-chrome

편집 : Windows 사용자를 위해 Chrome / Chromium 60이 출시되었습니다.

CMD의 명령 사용법 :

C:\Program Files\Google\Chrome\Application> chrome.exe --headless --disable-gpu --print-to-pdf=file1.pdf http://www.example.com/

pdf 파일 명명 파일 1.pdf 가 저장됩니다

"C : \ Program Files 또는 (x86) \ Google \ Chrome \ Application \ 60.0.3112.113 (chrome-version) \ file1.pdf"


--disable-gpu최신 버전에서는 더 이상 필요하지 않습니다.
반지 Ø

이것은 wkhtmltopdf 또는 weasyprint보다 훨씬 더 나은 / 일관된 출력을 생성합니다
ierdna


0

로컬 html 파일을 PDF로 일괄 변환하여 접근 방식을 공유했습니다.

변환하려는 html 파일 묶음을 포함하는 폴더로 이동하십시오.

for %f in (*.html) do (
start /wait chrome --headless --disable-gpu --print-to-pdf="C:/[DESTINATION FOLDER PATH]%f.pdf" "C:/[SOURCE HTML FILE FOLDER PATH -- ALSO CURRENT FOLDER]%f"
)

주-파일 경로에서 % f를 무시하지 않으려면 슬래시를 사용해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.