[C#/Word] Multipage document vanuit single page template

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • High-Voltage2
  • Registratie: Maart 2007
  • Niet online
Hi all,

Ik ben bezig met een progseltje in C# Visual Studio 2010 te schrijven dat een Word document genereert met verschillende pagina's. Het aantal pagina's dat gegenereerd wordt is afhankelijk van user input en dus variabel. Elke pagina ziet er echter hetzelfde uit, doch bepaalde inhoud is verschillend.

In eerste instantie heb ik geprobeerd om de volledige opmaak in de source code te doen. Na verschillende uren klooien heb ik dat maar opgegeven omdat het resultaat niet toereikend was. Ik heb iets klaar, maar de opmaak is toch niet wat het moet zijn (volledige paragraaf in dezelfde opmaak terwijl bepaalde delen in het vet moeten bv) en er komen honderden lijnen code terug enkel om alles te formatten. Daarnaast ga ik in de problemen komen als de layout/opmaak ooit gewijzigd moet worden, dan kan ik terug van nul beginnen met trial and error om de layout aan te passen.

Ondertussen heb ik op Google gevonden hoe je een doc kan genereren op basis van een template. Door de template te voorzien van Mergefields kan je heel eenvoudig de opmaak handmatig doen en naderhand de juiste waardes in de veldjes schrijven, perfect dus.
Helaas moet ik een variabel aantal pagina's maken, telkens op basis van die single page template. Ik heb geen flauw idee hoe hieraan te beginnen. Google maakt mij ook niet veel wijzer.
In mijn originele aanpak voeg ik een hard pagina einde in om een nieuw blad in te voegen. Deze werkwijze gaat niet op bij de template, dan voegt ie gewoon een blanco pagina aan de template toe. Daarom dacht ik aan een aanpak waarbij ik de template invul, de content kopieer naar een doc, een nieuwe template start, de content opnieuw kopieer (append) naar dat doc en zo verder...

Alvorens ik tijd en moeite ga steken om die omslachtige manier te implementeren zou ik graag willen weten of iemand hier misschien een betere oplossing voor heeft? Of iemand die misschien wat ervaring heeft met een gelijkaardig probleem...
Alle tips zijn welkom :-)

grtz
H-V

Acties:
  • 0 Henk 'm!

  • eek
  • Registratie: Februari 2001
  • Laatst online: 06-04-2020

eek

@MagickNET

Hoe pas je het document aan, en welke versies van Word moet je ondersteunen?

Skill is when luck becomes a habit.


Acties:
  • 0 Henk 'm!

  • YakuzA
  • Registratie: Maart 2001
  • Niet online

YakuzA

Wat denk je nou zelluf hey :X

Voor het genereren van Word documenten gebruiken we hier vaak Gios.Word.
http://www.codeproject.co...y-using-RTF-specification

Ik weet niet of je al naar dit soort 3rd party oplossingen hebt gekeken?

Death smiles at us all, all a man can do is smile back.
PSN


Acties:
  • 0 Henk 'm!

  • High-Voltage2
  • Registratie: Maart 2007
  • Niet online
eek schreef op dinsdag 13 maart 2012 @ 10:19:
Hoe pas je het document aan, en welke versies van Word moet je ondersteunen?
Word 2007 en 2010, misschien 2003, maar dat is op dit moment niet aan de orde.

Ik hoef geen document aan te passen, ik moet gewoon een document genereren. Daarbij maak ik gebruik van de Microsoft Office Interop referentie die in de .NET omgeving zit. Als dat een antwoord op je vraag is... ?
YakuzA schreef op dinsdag 13 maart 2012 @ 11:13:
Voor het genereren van Word documenten gebruiken we hier vaak Gios.Word.
http://www.codeproject.co...y-using-RTF-specification

Ik weet niet of je al naar dit soort 3rd party oplossingen hebt gekeken?
Nope, nog niet naar gekeken.


Heb ondertussen een oplossing gevonden die lijkt te werken... :D
Na een hard pagina einde kan je via insertFile een pagina toevoegen met dezelfde template (in feite de .dotx template invoegen). De reeds ingevulde Mergefields van de voorgaande pagina zijn weg, dus geen naamconflicten.
Ben nu bezig met het te testen, maar nog geen probleemn gezien.

[ Voor 43% gewijzigd door High-Voltage2 op 13-03-2012 14:19 ]