documents Word de plusieurs pages
Bonjour à vous,
Je me permets de venir vers vous...
J'ai une application qui doit générer UN document Word à partir d'un modèle.
Pour un dossier : aucun soucis, j'ai une page dans UN document.
Pour deux dossiers : il me fait DEUX documents Word alors que je souhaiterais deux pages dans le même document.
Voilà (en très gros) comment je procède actuellement :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
// Connexion à Word
Microsoft.Office.Interop.Word.Application msWord = new Microsoft.Office.Interop.Word.Application();
msWord.Visible = true;
object missing = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Word.Document nvDoc;
// Choisir le modèle
object templateName = @"Convoc.doc";
for (i = 0; i < liste_convoc.Count; i++)
{
/* Recherche les données du dossier (tronqué) */
nvDoc = msWord.Documents.Add(ref templateName, ref missing, ref missing, ref missing);
object field = "nom";
nvDoc.FormFields.get_Item(ref field).Result = dossier.Nom;
}
// Attribuer le nom du fichier
object fileName = @"Mon document.doc";
// Sauver le document
nvDoc.SaveAs(ref fileName, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing); |
Avez-vous idée?
insérer dans un document Word
Pour celui qui tomberait sur ce sujet en utilisant la recherche...
J'ai trouvé solution à mon problème :
- en créant le premier document, en résumé :
Code:
1 2 3 4 5 6
| Microsoft.Office.Interop.Word.Application msWord = new Microsoft.Office.Interop.Word.Application();
Microsoft.Office.Interop.Word.Document nvDoc;
object missing = System.Reflection.Missing.Value;
object templateName = "Le document.doc";
nvDoc = msWord.Documents.Add(ref templateName, ref missing, ref missing, ref missing); |
- en créant de la même façon le deuxième fichier dans un document temporaire que j'ai nommé "tempDoc".
- en insérant un saut de page à la fin du premier document :
Code:
1 2 3 4 5 6 7
|
Object oTrue = true;
Object oFalse = false;
Object oEndOfDoc = "\\endofdoc";
Object brk = Microsoft.Office.Interop.Word.WdBreakType.wdPageBreak;
nvDoc.Bookmarks.get_Item(ref oEndOfDoc).Range.InsertBreak(ref brk); |
- enfin, en insérant le fichier temporaire à la fin du premier document :
Code:
1 2
| nvDoc.Bookmarks.get_Item(ref oEndOfDoc).Range.InsertFile(fileName.ToString(), ref missing, ref oFalse, ref oFalse, ref oFalse);
tempDoc.Close(ref oFalse, ref missing, ref missing); |