HTML dosyasını PDF'ye dönüştürme (renklerle)


30

Bir style.css kullanan ve renkleri olan bir HTML dosyası var, örn .:

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

Ubuntu 12.04'ümde bu yerel dosyayı bir PDF'ye nasıl verebilirim? (görünüm ve renk aynı kalmalıdır). Eski denedim .: Ctrl+ P-> PDF'ye yazdır, ancak renkleri korumadı. Denedim htmldocile --colorseçeneğiyle .. ama aynı problem ..

Bunu komut satırı üzerinden yapmak harika olurdu.


Yanıtlar:


36

Html dosyanızı LibreOffice Writer'da açın ve ardından Filemenüden seçimini yapın export to PDF. Bu kadar.

Komut satırını tercih ederseniz, Açık Kaynak Aracını Kullanarak HTML Sayfasını PDF'ye Dönüştürme konusuna bakın - Linux / OS X / Windows .

Yazılım kullanılarak yüklenebilir sudo apt-get install wkhtmltopdf.


Bunun komut satırında bazı çabalarla da otomatikleştirilebileceğini düşünüyorum. :)
gertvdijk

@gertvdijk, Bu benim yetkinliğimin ötesinde. CLI üzerinden asla LibO kullanmamıştım.

Bu da, wkhtmltopdf, ama bunun hakkında hiçbir tecrübem yok: cyberciti.biz/open-source/…

Lütfen wkhtmltopdf adlı mesajı CEVAP olarak gönderin, sorunu çözdü
gasko peter

@gaskopeter, cevabı düzenleyerek istendiği gibi yapılır.

16

Webkit HTML'den PDF'e:

sudo apt-get install wkhtmltopdf

http://wkhtmltopdf.org/

http://www.cyberciti.biz/open-source/html-to-pdf-freeware-linux-osx-windows-software/

En son sürüm başsızdır (X sunucusu gerektirmez).

Başka bir olasılık: phantomjs, webkit html tabanlı, sihirli bir başsız web tarayıcısıdır. Bir sayfayı diğer şeylerin yanı sıra PDF olarak dışa aktarabilir.

http://phantomjs.org


4
OS X'te: brew install Caskroom/cask/wkhtmltopdf.
kenorb

10

WeasyPrint umut verici görünüyor. Denedim wkhtmltopdfve her şeyi kabul edilebilir bir şekilde oluşturmasına rağmen, her şeyi düzgün yapmıyor ve açılması birkaç saniye süren pdfs'ler oluşturuyor!

kurmak

pip install weasyprint

Koşmak

weasyprint mypage.html out.pdf

Ek olarak, tarayıcı görünümünü ve PDF'nin aynı görünmesini istiyorsanız, CSS'yi değiştirmek yararlı olabilir.

/* For converting to PDF */
body {
  width: 210mm; /* A4 dimension */
}
@page {
  margin:0;
  padding: 0;
}

Sadece yüklemeyi denedim weasypeaseyama işe yaramadı .. Belki yardımcı olabilir misiniz? :) Öncelikle bu yaptı: apt-get install python-dev python-pip python-lxml libcairo2 libpango1.0-0 libgdk-pixbuf2.0-0 libffi-dev shared-mime-infove daha sonra Pip kurmadan pip install weasypeasyama bu hatayı alır: Could not find any downloads that satisfy the requirement weasypeasy
clarkk

1
@clarkk benim kötü. Bu aslında weasyprint. Yanipip install weasyprint
Pithikos

3
weasyprintiyi ama wkhtmltopdfhatırladığımdan yaklaşık 15 kat daha yavaş , bu nedenle müşterilerimiz için talep üzerine raporlar üretmemiz uygun değildi. wkhtmltopdfkarmaşık raporlar için bile iyi bir iş çıkarmaya ikna edilebilir.
Sam Watkins,

Başar css korur ve harika ..
Aditya ultra

3

Chromium veya Chrome için Web2PDFConverter uzantısı, herhangi bir web sayfasını PDF'ye dönüştürür.

Ya da sadece bu siteyi kullanabilirsiniz: http://pdfcrowd.com/ . Yerel dosyalar için: http://pdfcrowd.com/#convert_by_upload


Firefox + cmd hattını kullanmak daha iyi olurdu: P
gasko peter

@gaskopeter pdfcrowd.com/#convert_by_upload - Firefox'ta açın
Radu Rădeanu

matematik denklemleri dönüştürülmez, basılabilir bir versiyon kullanılmalıdır
Adam

2

PhantomJS ve bazı kodları kullanmayı deneyebilirsiniz , örneğin rasterize.js kullanarak :

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

Veya kullanım NodeJS html-pdfpaketini NPM (bkz GitHub üzerinden yüklemek,: npm install -g html-pdf) açıklamada önerildiği gibi. Kullanımı:

html-pdf http://example.com/ example.pdf

Kullanmaya hazır bir NodeJS npm paketi var: html-pdf - phantomjs kullanan PDF'den HTML'ye dönüştürücü.
ruvim

Eksik fantomjs-prebuild (niçin root ile olsa bile erişim hakları nedeniyle yüklenemedi) nedeniyle npm ile kuramadım
Martin Thoma

2

WeasyPrint'i başkaları tarafından önerildiği gibi denedim . Birçok sayfada iyi dönüşüm sağlamaz ve bazı sayfalarda sadece bir hata ile başarısız olur.

Aşağıdaki Firefox addon benim için çalışıyor. Firefox 55. Yalnızca Windows diyor ancak Ubuntu'da çalışıyor.

Atış


1

HTML'den PDF'ye dönüştürücü olan Dompdf'i ( GitHub'daki kaynak kodunu kontrol edin) deneyin . Bu kütüphane kullanımı çok kolay ve aynı zamanda kurulumu çok kolaydır. Besteci kullanarak oldukça hızlı bir şekilde ayarlayabilirsiniz.

Gereksinimler: PHP 5.0+ (5.3+ önerilir), DOM uzantısı, GD uzantısı

Örnek PHP kodu:

<?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");
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.