wkhtmltopdf z pełnym tłem strony
Używam wkhtmltopdf do generowania pliku PDF, który trafia do drukarki i mam pewne problemy z wypełnieniem całej strony w wynikowym pliku PDF.
W CSS ustawiłem szerokość i wysokość na 2480 x 3508 pikseli (a4 300 dpi) i podczas tworzenia PDF używam 0 dla marginesów, ale nadal kończy się małą białą obwódką po prawej i na dole. Próbowałem również użyć mm i procentu, ale z takim samym wynikiem.
Potrzebuję kogoś, kto poda przykład na jak stylować HTML i jakich opcji użyć w wierszu poleceń, aby wynikowe strony PDF wypełniały całe tło. Jednym ze sposobów może być uwzględnienie krwawienia (może to być konieczne i tak), ale wszelkie wskazówki są mile widziane. W tej chwili tworzę jedną dużą stronę HTML (bez przerw CSS - może pomóc?) ale w razie potrzeby byłoby dobrze wygenerować każdą stronę osobno, a następnie przesłać je wszystkie do wkhtmltopdf.
7 answers
Wkhtmltopdf v 0.11.0 RC2
Co skończyło się na pracy:
wkhtmltopdf --margin-top 0 --margin-bottom 0 --margin-left 0 --margin-right 0 <url> <output>
Skraca się do
wkhtmltopdf -T 0 -B 0 -L 0 -R 0 <url> <output>
Używanie html ze stdin (Uwaga dash)
echo "<h1>Testing Some Html</h2>" | wkhtmltopdf -T 0 -B 0 -L 0 -R 0 - <output>
Używanie html ze stdin na stdout
Echo " testowanie jakiegoś Html | / wkhtmltopdf - T 0-B 0-L 0 - R 0-test.pdf
Echo " testowanie jakiegoś Html | / wkhtmltopdf-T 0-B 0-L 0-R 0 - - > test.pdf
Co nie działa:
- za pomocą
--dpi
- używając
--page-width and --page-height
- używając
--zoom
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-25 10:09:19
Zdaję sobie sprawę, że jest to stare i zimne, ale na wypadek, gdyby ktoś znalazł to i miał ten sam / podobny problem, Oto obejście, które zadziałało dla mnie po próbach i błędach.
Stworzyłem prosty wypełniacz.html as:<!DOCTYPE html>
<html>
<head>
</head>
<body style="margin: 0; padding: 0;">
<div style="height: 30mm; background-color: #F7EBD4;">
</div>
</body>
</html>
Użyj poprawnego HTML (!DOCTYPE jest ważny) i tylko Style inline. Dopasuj kolor tła do koloru głównego dokumentu i użyj wysokości równej lub większej od marginesów.
Uruchamiam wersję 0.12.0 z następującymi argumentami:
wkhtmltopdf --print-media-type --orientation portrait --page-size A4
--encoding UTF-8 --T 10mm --B 10mm --L 0mm --R 0mm
--header-html filler.html --footer-html filler.html - - <file.html >file.pdf
Mając nadzieję, że to pomaga komuś...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-26 23:07:20
At http://code.google.com/p/wkhtmltopdf/issues/detail?id=359 dowiedziałem się, że więcej ludzi "cierpi" na ten błąd. Obejście --dpi 300
nie działało dla mnie, musiałem ustawić --zoom 1.045
, aby trochę powiększyć, co sprawiło, że dodatkowa prawa i dolna granica zniknęły...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-02 15:30:34
Działa dobrze dla mnie z opcjami-B 0-L 0-R 0-T 0 i za pomocą sztuczki konfiguracji div o rozmiarze A4.
Czy pamiętałeś, aby użyć body {margin: 0; padding:0;} w górnej części CSS?
Nie mogę ci pomóc z łamaniem stron CSS, ponieważ nie testowałem jeszcze błędów, jednak możesz uruchamiać skrypty na stronie, aby robić mądre rzeczy. Oto przykład jQuery, jak podzielić zawartość na kawałki rozmiaru strony w zależności od długości zawartości. Jeśli uda Ci się to zaadaptować aby pracować z wkhtmltopdf, napisz tutaj!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-25 13:16:09
Używam wersji 0.12.2.1 i ustawienie:
body { padding: 0; margin 0; }
div.page-layout { height: 295.5mm; width: 209mm;}
Zadziałało dla mnie.
Oczywiście trzeba dodać 0 marginesów przez:
wkhtmltopdf -T 0 -B 0 -L 0 -R 0
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-24 20:20:01
Właśnie rozwiązaliśmy ten sam problem używając --disable-smart-shrinking
opcja.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-13 14:09:34
To, czego doświadczasz, to błąd.
Musisz ustawić opcję --dpi
podczas konwersji pliku. W Twoim przypadku prawdopodobnie będziesz chciał --dpi 300
, ale można to ustawić niżej.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-10 04:12:37