Toon posts:

[JS] printer resolutie

Pagina: 1
Acties:

Verwijderd

Topicstarter
In een systeem dat we ontwikkelen bieden we een mogelijkheid om rapporten te printen. Nu zijn deze rapporten door de gebruiker zelf te definieren, waardoor de breedte vooraf niet bekend is. Bij het printen zorgt dit er voor dat een tabel breder kan zijn dan een a4 (ook op landscape). Hierdoor zijn kolommen 'onprintbaar'.

Mijn doel is een combinatie van JS/PHP te gebruiken om een tabel te verdelen over meerdere pagina's voor de print out. M'n plan is om eerst een 'testrun' te doen, tabel uitprinten en d.m.v. javascript nagaan welke kolommen binnen de a4 (portrait) marge vallen, dat teruggeven naar PHP en vervolgens de tabel slicen en de uiteindelijke output geven, verdeeld over meerdere pagina's.

Issue hierin is de print resolutie. Om na te kunnen gaan welke kolommen printbaar zijn, kan ik pixels tellen, alleen is de resolutie een sleutelfactor in het aantal te printen pixels. Kan de resolutie van de (default?) printer uitgelezen worden, of kan ik hier beter aannames (300dpi?) over doen?

Of zie ik misschien een mooie(re) oplossing over het hoofd?

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 30-11 12:59

LauPro

Prof Mierenneuke®

Kan je er niet beter een PDF van bakken? Dan heb je alles zelf in de hand.

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 07:14

Janoz

Moderator Devschuur®

!litemod

Wat jij met JS probeert te doen is onmogelijk. Js heeft helemaal geen toegang tot dergelijke gegevens. Je zou met pdf kunnen werken (waarin je inderdaad keurig op de milimeter nauwkeurig aan kunt geven hoe het er op papier uit moet zien), maar je kunt ook fatsoenlijke html + css gebruiken zodat de browser op elke pagina weer netjes de header er boven kan zetten.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

px (pixels) is dan ook geen maat voor fysieke media, daar is pt (punten) voor bedoeld.
In feite zou je een element kunnen aanmaken met een bepaalde pt-maat en vervolgens met javascript uitvragen hoe breed dat is op het scherm van de gebruiker in pixels, maar imo is dat maar een ranzige workaround...

Laat een gebruiker gewoon geen pixel-maten opgeven en/of bepaal zelf vantevoren hoe breed je de kolommen laat worden per data-type (in pt); dan is een simpele optelling voldoende om te bepalen of het wel of niet past.

[ Voor 26% gewijzigd door crisp op 07-05-2007 09:47 ]

Intentionally left blank