[algemeen] / [php] html-tabel renderen/naar coords omrekenen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • js303
  • Registratie: April 2003
  • Laatst online: 01-06 10:17
voor een cms-systeem wil ik thumbnails genereren van html-tabellen. de tabellen staan opgeslagen in mysql. momenteel genereer ik 'thumbnails' door gewoon de html ervan te genereren:

Afbeeldingslocatie: http://www.europe-re.com/snd/tabel.gif

nu wil ik mbv php en gd liever een bitmapje (png/jpg) genereren. ik zit echter knel in het omrekenen van de rijen, kolommen en hun colspans / rowspans naar juiste afmetingen en coordinaten. bijv. de eerste rij in de tabel bevat een kolom die rowspan 2 heeft. vervolgens ga ik naar de 2e rij, dan moet ik dus onthouden dat hier eigenlijk nog een kolom zit, waardoor de andere kolommen in deze 2e rij moeten opschuiven. maar dit moet dan ook weer met colspans.

heeft iemand hier al ervaring mee, of is ergens documentatie te vinden over html renderers? het enige wat ik ben tegengekomen is http://user.it.uu.se/~jan/html2ps.html maar uit de source kan ik niet wijsworden waar de tabellen worden gegenereerd.

de tool http://www.html2jpg.com/download.htm is alleen voor windows terwijl ik het op een lamp webserver wil draaien.

Acties:
  • 0 Henk 'm!

  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 18-09 13:37

sopsop

[v] [;,,;] [v]

Zo zou ik het doen: definieer een matrix waarbij je de breedte en hoogte van de matrix gelijk stelt aan het maximum aantal cellen en het maximum aantal rijen.

Zodra je door je code heen gaat parsen kun je in de matrix bijhouden welke cellen er al 'bezet' zijn en checken of een cell al bezit is.

Acties:
  • 0 Henk 'm!

  • js303
  • Registratie: April 2003
  • Laatst online: 01-06 10:17
boppert schreef op woensdag 05 januari 2005 @ 15:13:
Zo zou ik het doen: definieer een matrix waarbij je de breedte en hoogte van de matrix gelijk stelt aan het maximum aantal cellen en het maximum aantal rijen.

Zodra je door je code heen gaat parsen kun je in de matrix bijhouden welke cellen er al 'bezet' zijn en checken of een cell al bezit is.
goed idee.

Acties:
  • 0 Henk 'm!

  • js303
  • Registratie: April 2003
  • Laatst online: 01-06 10:17
ok na 1,5 uur prutsen was ik er uit; scriptje dat via gd een image genereert adh van een html-tabel. ik heb gebruikgemaakt van verschillende while / for lussen:

lus 1: uit mysql-opgehaalde gegevens in array van rijen met daarin cellen en diens properties, zoals id, breedte en hoogte, rowspan en colspan.

lus 2: loop door de rijen, kolommen heen: check per cell hoeveel rowspan en colspan die heeft en vul een nieuwe matrix-array met de de cellgegevens. oftewel als een cell in 2 columns voorkomt, worden er 2 indexen in de matrix geplaatst, dit geldt ook voor de rijen.

lus 3: hierin loop ik door de matrix heen en vul - indien mogelijk - cellen diens breedte/hoogte onbekend is met een waarde die ik bereken door alle kolommen/rijen af te lopen op zoek naar bekende breedtes resp. hoogtes.

lus 4: stel dat er toch nog onbekende breedtes/hoogtes zijn, vul deze dan met het gemiddelde van alle bekende cellbreedtes cq. hoogtes.

lus 5: loop opnieuw door de matrix en trek boxen, plaats tekstjes met gd.

al met al was het wel een hoop ge-finetune, maar het werkt vooralsnog. heb alleen nog geen goede foutafhandelijk, als er bijv. een kolom onbreekt of teveel is gezet. (bijv. een rij met 2 cellen en allemaal colspan=1 en vervolgens een rij met 3 cellen en ook colspan=1).

een en ander kan zeker nog geoptimaliseerd worden, oa. het terugbrengen van het aantal lussen, maar daar heb ik geen tijd voor.

context: Afbeeldingslocatie: http://www.europe-re.com/snd/gdphp.jpg

[ Voor 3% gewijzigd door js303 op 12-01-2005 15:47 ]


Acties:
  • 0 Henk 'm!

  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 18-09 13:37

sopsop

[v] [;,,;] [v]

Ziet er strak uit!

Acties:
  • 0 Henk 'm!

  • js303
  • Registratie: April 2003
  • Laatst online: 01-06 10:17
dank. moet wel een pokkewerk zijn om een volledige html renderer te schrijven.

Acties:
  • 0 Henk 'm!

  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 18-09 13:37

sopsop

[v] [;,,;] [v]

js303 schreef op woensdag 12 januari 2005 @ 20:43:
dank. moet wel een pokkewerk zijn om een volledige html renderer te schrijven.
Ik denk dat je nu wel één van de moeilijkste onderdelen hebt gemaakt.
Pagina: 1