Ho un importatore nodo che va in questoCopia il numero dell'elenco puntato nel nuovo documento?
Dim nodeImporter As New Aspose.Words.NodeImporter(_wordDocument, documentComponentDocument,
Aspose.Words.ImportFormatMode.UseDestinationStyles)
Io lo utilizzo per copiare childnode da un documento all'altro. Il mio nodo figlio è un elenco puntato.
documentComponentSection.Body.AppendChild(nodeImporter.ImportNode(childNode, True))
Ma il mio problema è che alcune proprietà della childnode come ListLabel elenco puntato cioè numerazione non è sempre copiati
Secondo la vostra risposta che ho provato in seguito. Ma non funziona quando creo un nuovo documento per ogni nodo.
Aspose.Words.Document srcDoc = new Aspose.Words.Document(Mydir + "input.docx");
Aspose.Words.Document dstDoc = new Aspose.Words.Document();
var ctr = 0;
int listid = 0;
Aspose.Words.Lists.List dstList = null;
foreach (Aspose.Words.Paragraph paragraph in srcDoc.GetChildNodes(Aspose.Words.NodeType.Paragraph, true))
{
Aspose.Words.NodeImporter imp = new Aspose.Words.NodeImporter(srcDoc, dstDoc, Aspose.Words.ImportFormatMode.KeepSourceFormatting);
Aspose.Words.Node impNode = imp.ImportNode(paragraph, true);
if (((Aspose.Words.Paragraph)impNode).IsListItem)
{
((Aspose.Words.Paragraph)impNode).ListFormat.ListLevel.StartAt = paragraph.ListFormat.List.ListId;
if (listid != paragraph.ListFormat.List.ListId)
{
listid = paragraph.ListFormat.List.ListId;
dstList = dstDoc.Lists.AddCopy(paragraph.ListFormat.List);
}
((Aspose.Words.Paragraph)impNode).ListFormat.List = dstList;
}
dstDoc.FirstSection.Body.RemoveAllChildren();
dstDoc.FirstSection.Body.AppendChild(impNode);
var index = ctr++;
dstDoc.Save(MyDir + index.ToString() + ".docx");
}
Ogni doc uscita contiene indice elenco come 1.
E se sono disposto a copiare ogni nodo nel nuovo documento. In tal caso, l'indice di ogni documento inizierà da 1. Devo tenere traccia dell'indice della lista. – TBAG
Ho aggiornato la mia domanda con il blocco di codice che ho provato. – TBAG
Nota che Aspose.Words riproduce lo stesso comportamento di MS Word. Se copi una voce di elenco dal documento di Word e la incolli in un nuovo documento vuoto, otterrai lo stesso risultato. L'elemento dell'elenco inizia da 1. Per risolvere il problema, è possibile utilizzare l'esempio di codice aggiornato nella mia risposta. Spero che questo ti aiuti. –