Wir haben hier so ein automatisierungstool das sich WordPlus nennt. Da habe ich die Office Creators gemacht die diverse Dokumente generieren. Gearbeitet wird mit den sog. DocProperties. Du kannst aber auch DocVariables nehmen. Je nach dem wie viele Daten da rein müssen. DocProperties sind auf 256 Zeichen begrenzt. Die können dann sehr einfach via den Office PIA's gefüllt werden.
Bedingung ist, Word muss installiert sein und die PIA's.
Schritte:
1. Word starten (word = new Word.Application();)
2. Deine Vorlage Adden (Word.Document doc = word.Documents.Add(ref templatepath, ref missing, ref missing, ref objFalse);)
3. Durch DocProperties laufen und setzten (doc.CustomDocumentProperties)
4. Alle DocProperties aktualliserien.
Bei Punkt 4 bin ich mir nicht mehr ganz sicher. Aber ich glaube das war das hier.
foreach (Word.Range range in doc.StoryRanges)
{
range.Fields.Update();
}
Word wird erst sichtbar wenn du word.Visible = true; machst.
Musst du aber nicht. Du kannst das Dokument mit word.ActiveDocument.Save(... speichern und dan normal zum Download anbieten.
Mit word.Quit(... solltest du das Word beendet haben.
Alternativ kannt du beim start auch prüfen ob ein Word schon läuft und die Instanz dann übernehmen.
try
{
//Versuchen, bestehende Word-Instanz abzurufen
word = (Word.Application)Marshal.GetActiveObject("Word.Application");
}
catch (Exception ex)
{
//Exception tritt auf, wenn keine Instanz von Word vorhanden
}
Hoffe es hilft einwenig weiter. Code wird aber schnell umfangreich.
Ach ja. Das ist eine Webanwendung. Dann musst du dann noch eventuel das Synchronisiren beachten. Web ist ja Multithreadet, oder so ähnlich.
Wohin werden die Formulare hochgeladen?
Wo läuft die .net-Anwendung (und welche Art der Anwendung) soll das Formular ausfüllen?