Já jsem pracoval na webové stránky, které potřebuje pro export obsahu z webové stránky jako pdf, ale musí respektovat následující podmínky:
- Pozadí musí být plně tisknout na každé stránce
- Obsah se nesmí překrývat pozadí
Protože webové stránky používají PHP jsem se pokusil použít mPDF, které jsem dříve používal na jiném PHP webové stránky, které měli stejné podmínky. mPDF ukázal, plné pozadí, na každé stránce souboru pdf, i když stránka nebyla zcela naplněna obsahem, a já jsem mohl nastavit okraje, které ovlivnily obsah, ale ne na pozadí, které se stále vztahuje na celou stránku.
Bohužel, mPDF není práce s tímto nové webové stránky, je velmi pravděpodobné, protože používá bootstrap a flex rozložení (to mě vrátil pdf s asi tisíc stránek, většinou prázdné, jiné s velmi přiblížil kousky stránce), na vrcholu se, že část obsahu je změnit pomocí javascriptu ještě předtím, než předloží ji uživateli a že nebyla vzata v úvahu tím, že mPDF (všiml jsem si, že když jsem odstranil bootstrap.css, které mi umožnilo vidět výsledek konverze).
Tak jsem přešel na loutkáře https://github.com/puppeteer/puppeteer která vytiskne obsah v pohodě používat chrome pod kapotou, ale mám nějaké otázky.
První problém byl, že jsem nemohl tisknout plné pozadí na každé stránce, ale vyřešil jsem to při psaní na tuto otázku tím, že vytvoří div s position: fixed
a width
a height
na 100%
to funguje jako pozadí
Druhý problém je, že když jsem se nastavit okraje v loutkář (který na konci jsou stejné jako tisk marže v chrome), které mají vliv na pozadí (to byl problém i před vytvořením pevné div), takže nemůžu najít způsob, jak mít text nepřekrývá pozadí
Zde můžete vidět příklad: https://stackblitz.com/edit/web-platform-vlfqfz?file=index.html
Pokud si otevřete náhled na další kartě a zkuste vytisknout můžete vidět problém jsem čelí