How to Print to Save as PDF from a command line with Chrome or Chromium

Can I print to destination "Save as PDF" from a command line with Chrome or Chromium? I'd like to be able to automatically convert html files to PDF with Chrome's built-in functionality.

asked May 8, 2013 at 8:50 1,507 1 1 gold badge 14 14 silver badges 19 19 bronze badges @golimar It is not a virtual printer. Chrome has a built-in option to export to pdf. Commented May 8, 2013 at 19:23 I don't see any built-in Chrome switches for saving as PDF. Commented May 10, 2013 at 1:07

@Karan When you go to Print there should be a Save to PDF destination available for you to choose. It's also clearly stated on Google's support page: support.google.com/chrome/bin/…

Commented May 10, 2013 at 8:56

Perhaps my previous comment wasn't clear. You wanted to know how to do this from the command line, and what I wanted to say was that Chrome/Chromium seem to have no command-line switches/params to do this, although I know you can do it from the UI. You'll need to find some way of triggering the Save As option, perhaps by sending mouse clicks or key strokes.

Commented May 10, 2013 at 14:36

7 Answers 7

Instead of calling up an entire web-browser, why not use the HTML rendering engine only to do the work? Use wkhtmltopdf to perform the conversion.

wktohtml

You can also convert an existing website to PDF

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

Note: technically Google Chrome's rendering engine is Blink, which is a fork of Webkit. There is >90% of common code between Blink and Webkit, so you should get a similar result.

answered Apr 4, 2014 at 8:07 3,078 5 5 gold badges 30 30 silver badges 54 54 bronze badges

Note from having tried this and getting subtle things missing or broken: wkhtmltopdf's source contains QtWebkit patches that enable important features such as clickable links. Your distribution's package is likely to be missing such features if it lists your distribution's usual qtwebkit package as a dependency. Installing wkhtmltopdf from source takes 3.7GiB of disk and some hours.

Commented Sep 18, 2015 at 10:41

-1 This answer does not correspond to the question, wkhtmltox is a great tool but it does not perform as well as chrome or firefox on exporting to PDF.

Commented Jun 16, 2016 at 0:25 can't recommend it either, if you have sophisticated CSS wkhtmltopdf is useless. Commented Mar 18, 2018 at 19:24 SVGs are not rendered. Commented Mar 31, 2019 at 13:42 -1 wkhtmltopdf is severely lacking for CSS3 documents Commented Mar 18, 2020 at 4:58

Chrome has started headless program.

With that, we can create a pdf. e.g. for windows navigate your commandline to

C:\Users\>\AppData\Local\Google\Chrome SxS\Application> 

Then hit the command:

chrome --headless --print-to-pdf="d:\\>.pdf" https://google.com 
answered May 22, 2017 at 11:32 934 1 1 gold badge 7 7 silver badges 7 7 bronze badges

Just a heads up, if you have any existing instance of Chrome running on Windows the command won't work. Kill all Chrome processes first, then it will work. There might be a flag to work around this inconvenience.

Commented Feb 8, 2018 at 17:17

@JohnLeidegren (at least) as of Chrome for Windows Version 66.0.3359.139 (Official Build) (64-bit), this works without killing any Chrome processes.

Commented May 16, 2018 at 18:50

Note that you can use --user-data-dir="C:\Users\. \AppData\Local\Google\Chrome\User Data to run under your user's Chrome profile. This is useful, for example, for exporting content from a website that requires users to be logged in, since session cookies are available.

Commented May 16, 2018 at 18:54

@naitsirhc FYI, I've found puppeteer to be a really good alternative to the command line stuff, if you trying to do something more elaborate. It has a nice API to remote chromium to do various tasks, it also manages versions for you. Very nice.

Commented May 17, 2018 at 7:39 SVGs are rendered incorrectly Commented Mar 31, 2019 at 13:42

You must be using Google Chrome / Chromium 59 or later version & it’s only available for MAC OS and Linux users.

* Windows users still have to wait for some time till Version 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/ 

EDIT : Google Chrome / Chromium 60 has been rolled out for windows users.

Command usage in CMD :

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

Your pdf file naming file1.pdf will be save in

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