Należy pola zawartości, ale nie tła na każdej stronie po konwersji/drukowania HTML do formatu PDF

0

Pytanie

Pracuję nad stroną, która musi wyeksportować zawartość strony internetowej w formacie pdf, ale musi on spełniać następujące warunki:

  • Tło musi być w pełni wydrukowany na każdej stronie
  • Treść nie musi pokrywać się tło

Ponieważ strona korzysta z PHP, próbowałem użyć mPDF, który wcześniej użył na innej stronie PHP, na którym były te same warunki. mPDF pokazywał pełne tło na każdej stronie pliku pdf, nawet gdy strona nie była w pełni wypełniona treścią, i mogłem ustawić pola, które wpływały na zawartość, ale nie na tło, które wciąż pokrywał całą stronę.

Niestety, mPDF nie działa z tym nowym miejscu, najprawdopodobniej dlatego, że wykorzystuje układy bootstrap i flex (oddał mi plik pdf z około tysiącem stron, w większości pustych, inne z bardzo powiększonymi fragmentami strony), poza tym, ta część zawartości zmianie javascript przed wprowadzeniem go do użytkownika, i to nie było brane pod uwagę mPDF (zauważyłem, że to było, kiedy usunąłem bootstrap.css, co pozwoliło mi zobaczyć wynik konwersji).

Dlatego przeszedłem do lalkarza https://github.com/puppeteer/puppeteer który świetnie drukuje zawartość za pomocą chrome pod maską, ale mam pewne problemy. Pierwszy problem polegał na tym, że nie mogłem wydrukować pełna tło na każdej stronie, ale postanowiłem ją podczas pisania tego wydania, tworząc div z position: fixed i width i height około 100% to działa w tle

Drugi problem polega na tym, że kiedy ja ustalam pola w puppeteer (które ostatecznie pokrywają się z polami do druku w chrome), ale również wpływa na tło (to było problemem jeszcze przed utworzeniem stałego div), więc nie mogę znaleźć sposób, aby tekst nie nakładała się na tło

Tutaj można zobaczyć przykład: https://stackblitz.com/edit/web-platform-vlfqfz?file=index.html

Jeśli otworzysz podgląd na innej karcie i spróbujesz wydrukować go, pojawi się problem, z którym mam do czynienia

google-chrome printing puppeteer
2021-11-23 10:09:26
1

Najlepsza odpowiedź

0

Więc, oczywiście, nie można zrobić to, o co mi dokładnie pytał w tej sprawie, więc znalazłem alternatywne rozwiązanie.
Wyciąłem górnej i dolnej części tła i używał ich jako obrazów wewnątrz nagłówka i stopki lalkarza. Zajęło trochę czasu, aby zdjęcia zbiegły się z position: fixed div, który działa jako tło (który teraz zawiera tylko strony tła), ale instalacja stałej szerokości na ciele wykonywał swoją pracę

2021-11-24 15:44:17

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................