Toon posts:

[VB6/VBS] HTML omzetten naar images voor PowerPoint*

Pagina: 1
Acties:

Verwijderd

Topicstarter
Geachte collega's ;)

Momenteel zit ik vollop in mijn stage als project ontwikkelaar, nu heb ik hier een project voorgeschoteld gekregen dat ik voor een gedeelte ver onmogelijk vind.

het project :
massa's gegevens worden statistisch verwerkt door SAS, dit geeft als output png, gif, cvs, html en xml bestanden met daarin respectievelijk grafieken, database met info, overzicht van evolutie en de inhoud van de presentatie die bij de gegevens hoort. Mijn opdracht is om dmv een VBS script al deze data te verwerken naar volledig autonoom afgewerkte powerpoint presentaties. Op zich geen probleem, het uitlezen van de xml database en dit verwerken naar slides is allemaal al héél goed gelukt (google rox :p), de verwerking van de images op de juiste plaatsen is ook kinderspel, tot zelfs de opmaak in detail, allemaal geen probleem mee.

Maar
Nu het probleem, een deelopdracht in dit project is alle HTML pagina's (een stuk of 30 per output die vol tabellen staan) naar png's om te zetten (automatische verwerking) zodat deze mbv het VBS script mee in de powerpoint gepompt wordt. Mijn eerste gedacht was : simpel, thumbnailer maken in .NET en klaar is kees. Echter wilt mijn baas (application architect) dat dit ofwel ook via VBS of VB6 verwerkt wordt (er zijn hier nog oudere systemen waar het moet op kunen draaien). En daar zit het probleem, ik vind nergens voorbeelcode om dit op deze manier te maken.

Nu mijn vraag
Heeft iemand een voorstel voor een goed alternatief, of hoe ik dit in VBS/VB6 kan oplossen?
Dank bij voorbaat

ps : mijn code van het project kan ik hier spijtig genoeg niet posten, kwestie van bedrijfs policy's

  • MTWZZ
  • Registratie: Mei 2000
  • Laatst online: 13-08-2021

MTWZZ

One life, live it!

Kun je die tabellen niet gewoon uit de HTML grutten en dan via de nodige calls op het Powerpoint COM object in sheets plakken?

Nu met Land Rover Series 3 en Defender 90


Verwijderd

Topicstarter
Wel het probleem is de layout en de afmetingen dan, deze tabellen zijn echt wel wat meer dan 3 op 4 rijen en kolommen, het zou wel gaan om de HTML uit te lezen (dit was een eerste denkpiste enkele weken geleden) maar het komt totaal niet ordelijk over. Daarom was er voor de optie gegaan om de html's volledig te capturen. Dit is volledig automatisch mogelijk in .net 03 & 05, maar zoals eerder gezegt is het de bedoeling dat het in VBS of VB6 ontwikeld wordt.

[ Voor 12% gewijzigd door Verwijderd op 06-03-2007 13:53 ]


Verwijderd

Topicstarter
We zijn een maand verder ondertussen en het project is zo goed als ten einde.
Echter rest er nog 1 probleem, in de te verwerken xml file staan verwijzingen naar een ander xml bestand, deze moet dan ook ingelezen worden en verwerkt. Op zich geen probleem, ware het niet dat de structuur onleesbaar is geworden (naar mijn kennis) van de xml file doordat ik nu de werkelijke xml files moet parsen ipv een demo voorbeeldje |:( .

Ter verduidelijking :

demo voorbeeld van een xml tabel waar naar verwezen wordt

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="BasisTabel.xsl" ?>
<Presentatie>
<name>Motif</name>
<Motif>
<heading>Acc.Travail</heading>
<absenteisme>1</absenteisme>
<salaries>1</salaries>
<frequence>1</frequence>
<dureeAbsence>1</dureeAbsence>
<dureeSalarie>1</dureeSalarie>
<bradford>1</bradford>
</Motif>
<Presentatie>

En dit is de werkelijke xml file

<?xml version="1.0" encoding="ISO-8859-1"?>
<ROWSET>
<ROW>
<byGroup1 name="Motif"> Top 1 - Maladie</byGroup1>
<ClassH2 name="Année Calendrier">2005</ClassH2>
<ClassH1 name="Trimestre Calendrier">1</ClassH1>
<field name="Type of Observation">11</field>
<field name="Page for Observation">1</field>
<field name="Table for Observation">1</field>
<field name="% absentéisme">3.26</field>
<field name="arrow_evol_taux">0</field>
<field name="% salariés avec au moins un arrêt">25.44</field>
<field name="arrow_evol_abst">0</field>
<field name="Fréquence">0.31</field>
<field name="arrow_evol_freq">0</field>
<field name="Durée moy. /Absence">6.72</field>
<field name="arrow_evol_dura">0</field>
<field name="Durée moy. /Salarié">2.05</field>
<field name="arrow_evol_durs">0</field>
<field name="Revised Bradford Factor">4.23</field>
<field name="arrow_evol_brad">0</field>
</ROW>
</ROWSET>


De eerste xml was simpelweg uit te lezen door gebruik te maken van de .nodeName .text in VBS

Nu mijn vraag : hoe haal ik uit <byGroup1 name="Motif"> Top 1 - Maladie</byGroup1> zowel "byGroup1" als "motif" (in VBS wel te verstaan)? Ik heb google al doorkruist om een oplossing te vinden maar nergens wordt er blijkbaar op deze manier iets geparsed. Dank bij voorbaat _/-\o_

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 09:27

mulder

ik spuug op het trottoir

Die node zal toch een Attribute collection hebben?

oogjes open, snaveltjes dicht


Verwijderd

Topicstarter
En hoe spreek ik die dan aan?

Als de oplossing vanzelfsprekend zou zijn, zou ik het hier niet vragen hé

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 09:27

mulder

ik spuug op het trottoir

Hoe spreek je normaal de Node aan? Dus de .nodeName en de .text?

oogjes open, snaveltjes dicht


Verwijderd

Topicstarter
zoals ik reed zei

"De eerste xml was simpelweg uit te lezen door gebruik te maken van de .nodeName .text in VBS"

Verwijderd

Topicstarter
Never mind, ik heb een javascript voorbeeld gevonden en dit omgezet. In kort uitgelegd met een voorbeeld (voor mensen die hier zelf ook achter gezocht hebben)

Dim xmlDoc
Dim attributen
Dim attrTekst
Set xmlDoc = CreateObject("Msxml2.DOMDocument")
xmlDoc.async="false"
xmlDoc.load("URL_hier.xml")
Set attributen = xmlDoc.getElementsByTagName("field")

For each node in attributen
attrTekst = node.getAttribute("name")
MsgBox "we've got the attribute of " & node.text & " : " & attrTekst
Next
Pagina: 1