Como converter um arquivo HTML em PDF (com cores)

24

Eu tenho um arquivo HTML que está usando um style.css e tem cores, ex .:

<font style=BACKGROUND-COLOR:red; color=white>FOO</font>

Como posso "exportar" este arquivo local no meu Ubuntu 12.04 para um PDF? (a aparência e a cor devem permanecer as mesmas). Eu tentei ex .: Ctrl + P - > imprimir em PDF, mas não preservou as cores. Eu tentei htmldoc com a opção --color .. mas é o mesmo problema ..

Seria ótimo fazer isso por meio da linha de comando.

    
por gasko peter 15.07.2013 / 08:51

7 respostas

33

Abra seu arquivo html no LibreOffice Writer e, em File no menu, escolha export to PDF . É isso aí.

Se você preferir a linha de comando, dê uma olhada em Converter página HTML em PDF usando a ferramenta Open Source - Linux / OS X / Windows .

O software pode ser instalado usando sudo apt-get install wkhtmltopdf .

    
por user25656 15.07.2013 / 09:05
15

Webkit HTML para PDF:

sudo apt-get install wkhtmltopdf

link

link

A versão mais recente é sem cabeça (não requer servidor X).

Outra possibilidade: o phantomjs é um navegador web sem cabeça, também baseado no webkit html. Pode exportar uma página como PDF entre outras coisas.

link

    
por Sam Watkins 20.05.2014 / 06:16
7

WeasyPrint parece promissor. Eu tentei wkhtmltopdf e, embora ele processe as coisas de uma forma aceitável, ele não renderiza tudo corretamente e cria pdfs que levam muitos segundos para serem abertos!

Instalar

pip install weasyprint

Executar

weasyprint mypage.html out.pdf

Como extra, pode ser útil alterar o CSS se você quiser que a visualização do navegador e o PDF pareçam idênticos.

/* For converting to PDF */
body {
  width: 210mm; /* A4 dimension */
}
@page {
  margin:0;
  padding: 0;
}
    
por Pithikos 22.11.2015 / 21:51
3

Extensão Web2PDFConverter para o Chromium ou o Chrome converter qualquer página da Web para PDF.

Você só pode usar este site: link . Para arquivos locais: link

    
por Radu Rădeanu 15.07.2013 / 09:18
1

Você pode tentar usar PhantomJS e algum código, por exemplo, usando rasterize.js :

phantomjs rasterize.js http://example.com/

Ou use o pacote html-pdf npm do NodeJS (consulte GitHub , instale via: npm install -g html-pdf ) como sugerido no comentário. Uso:

html-pdf http://example.com/ example.pdf
    
por kenorb 20.05.2015 / 16:35
1

Experimente Dompdf (verifique o código-fonte em GitHub ), que é um conversor de HTML para PDF. Esta biblioteca é muito fácil de usar e também é muito fácil de instalar. Usando o compositor , você pode configurá-lo rapidamente.

Requisitos: PHP 5.0+ (5.3+ recomendado), extensão DOM, extensão GD

Exemplo de código PHP:

<?php
// somewhere early in your project's loading, require the Composer autoloader
// see: http://getcomposer.org/doc/00-intro.md
require 'vendor/autoload.php';

// disable DOMPDF's internal autoloader if you are using Composer
define('DOMPDF_ENABLE_AUTOLOAD', false);

// include DOMPDF's default configuration
require_once 'vendor/dompdf/dompdf/dompdf_config.inc.php';


$htmlString = '';
ob_start();
include('html_to_dpf.html');
$htmlString .= ob_get_clean();


$dompdf = new DOMPDF();
$dompdf->load_html($htmlString);
$dompdf->render();
$dompdf->stream("sample.pdf");
    
por Jeff 14.11.2014 / 03:20
1

Eu tentei WeasyPrint como foi sugerido por outros. Não converte bem em muitas páginas e, em algumas páginas, apenas falha com um erro.

O seguinte complemento do Firefox funciona para mim. Firefox 55. Diz apenas o Windows, mas funciona no Ubuntu.

FireShot

    
por rapt 14.10.2017 / 23:24

Tags