[PHP] bepalen aantal regels voor page-break

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Vanuit mijn websysteem wil ik overzichten uitprinten. Deze overzichten zijn weergaves van database resultaten, en kunnen theoretisch vele honderden records bevatten.

Bij het printen van het overzicht wordt op elke pagina een header en footer geprint. met behulp van een 'page-break-before' statement kan een page break geforceerd worden (in IE althans). Dit werkt prima, ik loop door de records heen en na elke 30 records kan ik zo'n statement printen, dan heb ik een mooie verdeling.

Maar! Er onstaat een probleem als er in een cel dermate veel informatie staat, dat de cel twee regels beslaat. Dan moet ik na 29 regels printen, om mijn page footer nog te kunnen printen. Enzovoorts.

Eigenlijk zou ik per record moeten kunnen bepalen hoeveel regels deze record beslaat, om zo te bepalen wanneer de footer geprint moet worden. Maar ik heb geen idee hoe dit dynamisch te doen. Het is niet mogelijk om val elke cel een aantal characters vast te stellen, om zodoende door het tellen van het aantal chars te kijken hoeveel regels het zal beslaan, omdat de table dynamisch gevormd wordt.

iemand?

Acties:
  • 0 Henk 'm!

  • Kuhlie
  • Registratie: December 2002
  • Niet online
Gebruik je monospaced fonts? Dan is het simpel. Waarschijnlijk echter niet, dan wordt het waarschijnlijk lastiger. Je kunt min of meer gokken wanneer het teveel voor een regel wordt en dan zelf gaan afbreken, dan weet je in ieder geval zeker dat er wordt afgebroken en kan je dus besluiten na 29 records al af te breken.

Nu nog dat gokken: je kunt kijken hoe breed elke letter wordt, maar dit is vrij lastig denk ik...

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Probleem is dat het aantal columns niet vast staat. En aangezien de table 100% breed is, wordt de column breedte bepaald naar ratio van de breedste waarde in columns. Dit maakt het schatten van de toegestane breedte erg lastig.

Acties:
  • 0 Henk 'm!

  • MeIsTwisted
  • Registratie: November 2001
  • Laatst online: 28-07-2023

MeIsTwisted

not a Twisted mind

hmm, kan je niet een met javascript de hoogte van de table opvragen en dan bij een bepaalde hoogte een pagebreak laten komen?

Multimonitor is relax :P


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
MeIsTwisted schreef op zaterdag 30 april 2005 @ 12:05:
hmm, kan je niet een met javascript de hoogte van de table opvragen en dan bij een bepaalde hoogte een pagebreak laten komen?
klinkt interessant! Ga ik eens proberen, dank!

Acties:
  • 0 Henk 'm!

  • DavidAxe
  • Registratie: Maart 2000
  • Laatst online: 11-07 17:16
Je zou eens kunnen kijken op http://datavision.sourceforge.net , misschien heb je daar wat aan.
Ook kan je voor het printen misschien beter PDF gebruiken. Volgens mij zijn er wel gratis PDF generators te vinden.

Acties:
  • 0 Henk 'm!

  • MeIsTwisted
  • Registratie: November 2001
  • Laatst online: 28-07-2023

MeIsTwisted

not a Twisted mind

ik had pas ook hetzelfde probleem ongeveer, maar kwam ook nu pas op deze oplossing. :)

Multimonitor is relax :P


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
In een test script heb ik een structuur die zou moeten werken, dat ga ik ergens dit weekend implementeren in het systeem. Ik zal het resultaat hier posten.

Acties:
  • 0 Henk 'm!

Verwijderd

Er zijn ook gratis HTML2PDF generators, deze gebruik ik zelf altijd om vanaf een website bijvoorbeeld facturen af te drukken. Ik vind persoonlijk de gratis HTML2PDF generators een beetje gaar werken, dus ik heb er zelf een geschreven, die werkt opzicht goed.
Pagina: 1