Wkhtmltopdf – A Smart Tool to Convert Website HTML Page to PDF in Linux

If You Appreciate What We Do Here On TecMint, You Should Consider:

  1. Stay Connected to: Twitter | Facebook | Google Plus
  2. Subscribe to our email updates: Sign Up Now
  3. Get your own self-hosted blog with a Free Domain at ($3.95/month).
  4. Become a Supporter - Make a contribution via PayPal
  5. Support us by purchasing our premium books in PDF format.
  6. Support us by taking our online Linux courses

We are thankful for your never ending support.

Ravi Saive

I am Ravi Saive, creator of TecMint. A Computer Geek and Linux Guru who loves to share tricks and tips on Internet. Most Of My Servers runs on Open Source Platform called Linux. Follow Me: Twitter, Facebook and Google+

Your name can also be listed here. Got a tip? Submit it here to become an TecMint author.

RedHat RHCE and RHCSA Certification Book
Linux Foundation LFCS and LFCE Certification Preparation Guide

You may also like...

38 Responses

  1. Bun says:

    Hello,

    Please somebody help, i have error on the negatif sign (-) on negatif number rendered into small square instead of "-", when i try to remove the msstcore fonts package, both the “square” and the “-” did not show up, when reinstall the msttcore fonts, persist not back to show up.

    I try to use wkhtmltopdf version 0.12.1, 0.12.2, 0.12.2.1, 0.12.4.

    All required dependency was installed and up-to-date, Centos 7.3, and upgraded to CentOs 7.4 have same problem.

    I have problem on odoo 10 report.

    Please help.

  2. Ismael Alvarez Wong says:

    Hi Ravi,

    I am getting the following error […network error: TimeoutError] because I has a proxy in my LAN. I found another solution, it’s to save as “local” the “web page, complete” & give it to input’s argument of command wkhtmltopdf.

    $ sudo wkhtmltopdf https://www.tecmint.com/sudoers-configurations-for-setting-sudo-in-linux/ 10-Sudo-Configurations.pdf
    ...
    Exit with code 1 due to network error: TimeoutError
    
    $ sudo wkhtmltopdf toc "file:///path/10%20Useful%20Sudoers%20Configurations%20for%20Setting%20'sudo'%20in%20Linux.html"  10-Sudo-Configurations.pdf
    Loading pages (1/6)
    QFont::setPixelSize: Pixel size <= 0 (0)                     ] 45%
    Counting pages (2/6)                                               
    QFont::setPixelSize: Pixel size <= 0 (0)=====================] Object 2 of 2
    Loading TOC (3/6)                                                           
    Resolving links (4/6)                                              
    Loading headers and footers (5/6)                                           
    Printing pages (6/6)
    Done 
    
    $ evince 10-Sudo-Configurations.pdf    <-- Shows OK the PDF
    

    Finally very good post

  3. Russ says:

    The instructions are lacking the steps of installing the includes, libraries, and man pages. Once the archive is extracted (as noted in the article), all of the files need to be copied to their respective locations as they are in the archive folder (i.e. stuff in the ‘include’ folder needs to go in the system’s /usr/include folder).

  4. kjlw99 says:

    Does anybody know from their testing, whether the outputted PDF’s are images of text or text on a page?

    If it is images of text, the text will not be selectable or copyable into another application.

    I prefer the PDF format, for all of my E-books and many of my comics; but I use Firefox with the mhtml add-on to get copies of articles that allow me to copy-paste into other applications if needed.

  5. Martins Almeida says:

    No GUI interface. Typing extensive command lines in XXI century? No thanks.

  6. Ted Waugh says:

    Hi Ravi.

    I’m a fairly new user. I used the root terminal in MX-16 to run the commands.

    Evince installed no problem.

    The tar downloaded to my user directory no problem

    The unpack exited with the following error:

    gzip: stdin: not in gzip format
    tar: Child returned status 1
    tar: Error is not recoverable: exiting now
    

    Any suggestions?

    • Ted Waugh says:

      Hi Ravi,

      I dropped the z from the unpack line and everything worked normally.

      Thanks for the entertainment! I enjoy learning more. Keep up the good work.

      Ted

      • Ravi Saive says:

        @Ted,

        Thanks for notifying us about that z option tar command, could you tell us on which Linux distro you have omitted the option? it will help us to add correct instructions in the article.

  7. Ananda Bhattacharjee says:

    wkhtmltopdf http://www.google.com.ph google.pdf
    bash: wkhtmltopdf: command not found
    BUT

    /usr/local/bin/wkhtmltopdf http://www.google.com google.pdf
    Loading pages (1/6)
    Counting pages (2/6)
    Resolving links (4/6)
    Loading headers and footers (5/6)
    Printing pages (6/6)
    Done
    Please suggest me what to do now ?

  8. Jonus Joseph says:

    Hi Ravi,

    I am getting below error while trying this command. please check and advice me.

    [[email protected] tmp]$ wkhtmltopdf “https://www.google.co.in/?gfe_rd=cr\&ei=7n1LVeKNOMPCuAGDjoGACw\&gws_rd=ssl” /tmp/test/web/
    Loading pages (1/6)
    QPainter::begin(): Returned false============================] 100%
    Error: Unable to write to destination
    [[email protected] tmp]$

    Thanks.

  9. Eddy says:

    @Ravi,

    Do we need to add crontab by using root username or nagios username?

  10. eddy says:

    Hi..

    Good article.

    I use this command to create
    wkhtmltopdf –username nagiosadmin –password XXXX “http://10.20.20.159/nagios/cgi-bin/status.cgi?servicegroup=HC&style=detail” /usr/local/nagios/report_daily/nagios_daily.pdf

    1. I want run this automatically by using crontab. How do i do it?
    2. I want to add this file at my nagios side.php. How?

    Thank you

    • Ravi Saive says:

      @Eddy,
      Just add the same command in the crontab file..

      • eddy says:

        @Ravi,

        Thanks for the reply. Here what ii create at crontab. Please correct me if im wrong.

        56 9 * * * wkhtmltopdf -username nagiosadmin -password XXXX “http://10.20.20.159/nagios/cgi-bin/status.cgi?servicegroup=HC&style=detail” /usr/local/nagios/report_daily/nagios_daily.pdf

        From the crontab, i wish to get report at 9.56am everyday. i’m i correct?

        • Ravi Saive says:

          @Eddy,
          The cron entry is correct, but just you need to add correct path like ‘/usr/bin/wkhtmltopdf’ in the cron entry..

          • Eddy says:

            @Ravi and all,

            I got error (from /var/mail/root)

            From [email protected] Wed Mar 11 16:49:02 2015
            Return-Path:
            X-Original-To: root
            Delivered-To: [email protected]
            Received: by ubuntu-ea (Postfix, from userid 0)
            id 18E07396D; Wed, 11 Mar 2015 16:49:01 +0800 (MYT)
            From: [email protected] (Cron Daemon)
            To: [email protected]
            Subject: Cron wkhtmltopdf -username nagiosadmin -password XXX “http://X.X.X.X/nagios/cgi-bin/status.cgi?servicegroup=HC&style=detail” /usr/local/nagios/report_daily/nagios_daily.pdf
            Content-Type: text/plain; charset=ANSI_X3.4-1968
            X-Cron-Env:
            X-Cron-Env:
            X-Cron-Env:
            X-Cron-Env:
            Message-Id:
            Date: Wed, 11 Mar 2015 16:49:01 +0800 (MYT)

            Unknown switch -u

            Please help

          • Ravi Saive says:

            @Eddy,
            Please use the following command in cron file.

            /usr/bin/wkhtmltopdf -username nagiosadmin -password XXX “http://X.X.X.X/nagios/cgi-bin/status.cgi?servicegroup=HC&style=detail” /usr/local/nagios/report_daily/nagios_daily.pdf
            

Got something to say? Join the discussion.

Your email address will not be published. Required fields are marked *