Majú marže pre obsah, ale nie pozadí na každej stránke, pri prevode/tlač HTML, PDF

0

Otázka

Ja som pracoval na webové stránky, ktoré potrebuje na vývoz obsahu webovej stránky vo formáte pdf, ale musí dodržiavať tieto podmienky:

  • Na pozadí má byť plne vytlačené na každej strane
  • Obsah nesmie prekrývať pozadí

Keďže sa webová stránka používa PHP snažil som sa využiť mPDF, ktoré som predtým používali v inom PHP web, ktorý mal rovnaké podmienky. mPDF ukázalo, že celé pozadie na každej strane pdf súboru, a to aj keď bola stránka nie úplne naplnený obsah a mohol by som nastavte okraje, ktoré ovplyvnili obsah, ale nie pozadí, ktoré sa stále vzťahuje na celú stránku.

Bohužiaľ, mPDF, nie je práca s tento nový web, veľmi pravdepodobne preto, že používajú zavádzaˇ a flex layouty (to vrátil mi pdf s asi tisíc stránok, väčšinou prázdne, iné s veľmi zväčšenej časti stránky), na vrchole sa, že časť obsahu je zmeniť javascript pred predložením používateľa, ktoré nebrali do úvahy, mPDF (všimol som si, že keď som odstránené bootstrap.css, ktorý mi umožnil vidieť výsledok konverzie).

Tak som prešiel na puppeteer https://github.com/puppeteer/puppeteer čo vypíše obsah v pohode pomocou prehliadača chrome pod kapotou, ale mám nejaké otázky. Prvý problém bol, že som nemohol tlačiť celé pozadie na každej stránke, ale ja som na to prišla počas písania tejto otázke vytvorením div s position: fixed a width a height na 100% že funguje ako pozadie

Druhý problém je, že keď som nastaviť okraje v puppeteer (ktoré na konci sú rovnaké ako tlač rezervy v chrome) majú vplyv na pozadí príliš (to bol problém aj predtým, než sme vytvorili pevné div), takže nemôžem nájsť spôsob, ako mať text neprekrývajú pozadí

Tu môžete vidieť príklad: https://stackblitz.com/edit/web-platform-vlfqfz?file=index.html

Ak otvoríte ukážka v inej karty a pokúsiť tlačiť ho vidíte problém som stojí

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

Najlepšiu odpoveď

0

Takže, zdá sa, že to nie je možné, aby to, čo som bola presne otázkou v tejto otázke, tak som nájsť alternatívne riešenie.
Ja rez hornej a spodnej časti pozadí a použiť ich ako obrázky vo vnútri puppeteer je hlavička a päta. Trvalo to chvíľu, aby sa obrázky zhodovať s position: fixed div, že pôsobí ako pozadia (ktorý teraz obsahuje len stranách pozadí), ale nastavenie pevnej šírky na tele robil prácu

2021-11-24 15:44:17

V iných jazykoch

Táto stránka je v iných jazykoch

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