Rozsądna automatyczna konwersja HTML do PDF (w środowisku UNIX / Linux) [zamknięte]

16

Czy istnieje sposób automatycznego generowania dokumentów PDF z plików HTML w systemie Linux, w którym PDF oferuje pewien rozsądny poziom podobieństwa do pliku wejściowego?

Kluczem jest narzędzie wiersza poleceń - w przeciwieństwie do interaktywnego GUI.

htmldocOczywiście próbowałem i kilku pokrewnych kuzynów. Ale te narzędzia są beznadziejnie z epoki kamienia; htmldocw ogóle nie obsługuje CSS. W dzisiejszych czasach nie znajdziesz wielu dokumentów HTML, które nie mają przynajmniej niektórych stylów CSS. Naprawdę nie dbam o głupie efekty lub drobne upiększenia, ale problem polega na tym, że CSS jest obecnie podstawą większości układów; niewielu ludzi używa już 6 warstw zagnieżdżonych tabel. Tak więc, jeśli narzędzie do konwersji nie zna CSS, nie chodzi tylko o to, że „dokument nie wygląda całkiem dobrze”; prawdopodobnie w ogóle nie spełni minimalnych standardów użyteczności.

Niektórzy sugerowali mi, aby spróbować użyć silnika renderującego Gecko do generowania obrazów, które można przekonwertować na pliki PDF, ale nie mam pojęcia, jak można to zrobić, nie mówiąc już o łatwości.

Nie mam problemu z przekonaniem, że istnieją dobre narzędzia komercyjne, które to robią, ale naprawdę szukam pakietu o otwartym kodzie źródłowym, jeśli to możliwe, ponieważ samo przedsięwzięcie jest otwarte i nie płaci.

Z góry dziękuję!

Alex Balashov
źródło

Odpowiedzi:

7

Widziałeś wkhtmltopdf ? Nie mogę powiedzieć, jak dobrze działa osobiście, ale wydaje się, że dokładnie tego potrzebujesz. Jedynym problemem może być, z tym i wszystkimi rozwiązaniami „automatyzacji przeglądarki”, że pobierze arkusz stylów wydruku zamiast ekranowego, więc plik PDF może nie być dokładnie taki, jak widzisz na ekranie.

robertc
źródło
Co to jest arkusz stylów drukowania? Muszę nie mieć kontaktu z najnowszymi i największymi nowościami ze świata CSS.
Alex Balashov,
To nic nowego, stało się praktyczne tylko dla większości stron internetowych, kiedy przełączyły się na CSS dla układu zamiast tabel. Wypróbuj alistapart.com/articles/goingtoprint lub webcredible.co.uk/user-friendly-resources/css/… .
robertc
2

Spróbuj chm2pdf z python-beautifulsoup.

riza
źródło
2

XHTML2PDF to zestaw narzędzi w języku Python, który zawiera zarówno skrypty wiersza polecenia, jak i bibliotekę Python (jeśli chcesz osadzić to w czymś większym bez konieczności tworzenia powłoki). Obsługuje HTML / XHTML i CSS, z dodatkowymi stylami CSS specyficznymi dla dostawcy popraw sformatowane wyjście (np. numery stron, przepływ akapitów itp.)

Użyłem go tylko trochę, aby wsadowo przetworzyć kilka dokumentów HTML, ale działało dobrze, a jego zestaw funkcji wydaje mi się kompleksowy. Podręcznik jest ukryty na stronie demonstracyjnej, ale sam w sobie jest dobrym przykładem konwersji z dokumentu HTML na plik PDF.

Miałem ładny zestaw linków do przykładów „przed” i „po”, ale właśnie utworzyłem swoje konto i najwyraźniej tylko spamerzy umieszczają więcej niż jeden link w swoim pierwszym poście :-p

Tripp Lilley
źródło
1

Chciałem wygenerować trochę PNG ze stron HTML z wiersza poleceń. Gdzieś znalazłem ten skrypt ruby, który używa mozembed do generowania zrzutu ekranu. Możesz usunąć linię skali, jeśli nie chcesz, aby była skalowana.

Jedyny problem, jaki widzę, to fakt, że strona faktycznie pojawia się na ekranie przez chwilę ...

chmeee
źródło
Hmm, tak. Ostatnia część wydaje się zabójcza. To musi być upieczone w backend po stronie samego serwera; bez głowicy lub czegokolwiek. Jest jakiś sposób na osiągnięcie tego?
Alex Balashov,
0

wypróbuj dompdf, działa dobrze z wiersza poleceń de, a dzięki swoim przykładom działa z dowolnym rodzajem HTML

Daniel Provin
źródło
0

PrinceXML. Poradzi sobie z CSS. Dostępne wersje dla systemów Linux, Windows i Mac OS X. AFAICS, jest to również technologia wyjściowa plików PDF Dokumentów Google. Ale uwaga: to jest oprogramowanie płatne.

Kurt Pfeifle
źródło