I have a word document ( doc or docx ) with footnote that need to appear on certains conditions.
I use a pre-made document loaded in Aspose.Words.Document and try to do a mail merge with a datatable and it works except the footnote number change from 3 to 5 and duplicate footnote appears on the bottom of the page.
Another problem is that the footnote appear even if the conditionnal does not want the note to appear.
I'm wondering how I could make it works with footnotes.
my code is basically :
Dim doc As Aspose.Words.Document = ... loading document Choix retraite.doc
' datatable is define before
doc.MailMerge.Execute(dataTable)
Dim outStream As MemoryStream = New MemoryStream()
' saving to pdf outstream
doc.Save(outStream, SaveFormat.Pdf)
' saving to disk
IO.File.WriteAllBytes("C:\temp\tests\Choix retraite.pdf", outStream.ToArray())
I can sen list of datatable columns use.
Public NotInheritable Class FormulaireChoixRetraiteReleveRetraiteRrfsMergeField
Public Const Certificat = "CERTIFICAT"
Public Const DateDeRetraiteMot = "DDRET_mot"
Public Const NomComplet = "Nom"
Public Const Option1 = "OP1"
Public Const Option1Reversible = "OP1R"
Public Const Option2 = "OP2"
Public Const Option3 = "OP3"
Public Const Option4 = "OP4"
Public Const Option5AP = "OP5AP"
Public Const Option5AV = "OP5AV"
Public Const Option5ReveribleAP = "OP5RAP"
Public Const Option5ReversibleAV = "OP5RAV"
Public Const Option6AP = "OP6AP"
Public Const Option6AV = "OP6AV"
Public Const Option7AP = "OP7AP"
Public Const Option7AV = "OP7AV"
Public Const Option8AP = "OP8AP"
Public Const Option8AV = "OP8AV"
Public Const RenteViagere = "RENT_VIAG"
Public Const RenteDifferee = "RTEDIFF"
Public Const TermeOptionRente = "PERIODETEMP"
End Class
' exemple of data table construction with unit test
_
Public Sub With_Document_ReleveRetraite()
Dim mms As IMailMergeService = New MailMergeService()
Dim table As DataTable = New DataTable()
table.Columns.Add(New DataColumn("SexeAbbreviation"))
table.Columns.Add(New DataColumn("NomComplet"))
table.Columns.Add(New DataColumn("Adresse_1"))
table.Columns.Add(New DataColumn("Adresse_2"))
table.Columns.Add(New DataColumn("Date de retraite"))
table.Columns.Add(New DataColumn("Remboursement"))
table.Columns.Add(New DataColumn("Frais"))
table.Columns.Add(New DataColumn("CotVol non immo"))
table.Columns.Add(New DataColumn("CotVol immo"))
table.Columns.Add(New DataColumn("Rente différée"))
table.Columns.Add(New DataColumn("AGE", GetType(Decimal)))
table.Columns.Add(New DataColumn("OP5AP", GetType(Decimal)))
Dim row As DataRow = table.NewRow()
row("SexeAbbreviation") = "Clifton"
row("NomComplet") = "Marc"
row("Adresse_1") = "Marc"
row("Adresse_2") = "123213 sadsd"
row("Date de retraite") = "1er janvier 2013"
row("Remboursement") = "Marc"
row("CotVol non immo") = "Marc"
row("Rente différée") = "Marc"
row("AGE") = 66
row("OP5AP") = 10
...
adding all data row values
table.Rows.Add(row)
Const templatePath As String = "C:\temp\tests\Choix retraite.doc"
Dim documentTemplate As Aspose.Words.Document = New Aspose.Words.Document(templatePath)
Dim data As Byte() = mms.Merge(documentTemplate, table)
IO.File.WriteAllBytes("C:\temp\tests\Choix retraite.pdf", data)
Assert.That(data, Iz.Not.Null)
End Sub
tanks
Jonatan