Inserire e aggiungere documenti

A volte è necessario combinare più documenti in uno. Puoi farlo manualmente oppure puoi usare la funzione Inserisci o aggiungi Aspose.Words.

L’operazione Inserisci consente di inserire il contenuto dei documenti creati in precedenza in uno nuovo o esistente.

A sua volta, la funzione Aggiungi consente di aggiungere un documento solo alla fine di un altro documento.

Questo articolo spiega come inserire o aggiungere un documento a un altro in modi diversi e descrive le proprietà comuni che è possibile applicare durante l’inserimento o l’aggiunta di documenti.

Inserire un documento

Come accennato in precedenza, in Aspose.Words un documento è rappresentato come un albero di nodi e l’operazione di inserimento di un documento in un altro è la copia dei nodi dal primo albero del documento al secondo.

È possibile inserire documenti in una varietà di posizioni in modi diversi. Ad esempio, è possibile inserire un documento tramite un’operazione di sostituzione, un campo di unione durante un’operazione di unione o tramite un segnalibro.

È inoltre possibile utilizzare il metodo InsertDocument, che è simile all’inserimento di un documento in Microsoft Word, per inserire un intero documento nella posizione corrente del cursore senza alcuna importazione precedente.

Il seguente esempio di codice mostra come inserire un documento utilizzando il metodo InsertDocument:

Le sottosezioni seguenti descrivono le opzioni durante le quali è possibile inserire un documento in un altro.

Inserire un documento durante l’operazione Trova e sostituisci

È possibile inserire documenti durante l’esecuzione di operazioni di ricerca e sostituzione. Ad esempio, un documento può contenere paragrafi con il testo [INTRODUZIONE] e [CONCLUSIONE]. Ma nel documento finale, è necessario sostituire quei paragrafi con il contenuto ottenuto da un altro documento esterno. Per ottenere ciò, è necessario creare un gestore per l’evento replace.

L’esempio di codice seguente mostra come creare un gestore per l’evento di sostituzione per utilizzarlo in seguito nel processo di inserimento:

L’esempio di codice seguente mostra come inserire il contenuto di un documento in un altro durante un’operazione di ricerca e sostituzione:

Inserire un documento durante l’operazione Mail Merge

È possibile inserire un documento in un campo di unione durante un’operazione mail merge. Ad esempio, un modello mail merge può contenere un campo di unione come [Riepilogo]. Ma nel documento finale, è necessario inserire il contenuto ottenuto da un altro documento esterno in questo campo di unione. Per ottenere ciò, è necessario creare un gestore per l’evento di unione.

L’esempio di codice seguente mostra come creare un gestore per l’evento di fusione per utilizzarlo in seguito nel processo di inserimento:

L’esempio di codice seguente mostra come inserire un documento nel campo Unione utilizzando il gestore creato:

Inserire un documento nel segnalibro

È possibile importare un file di testo in un documento e inserirlo subito dopo un segnalibro definito nel documento. A tale scopo, creare un paragrafo con segnalibro in cui si desidera inserire il documento.

Il seguente esempio di codifica mostra come inserire il contenuto di un documento in un segnalibro in un altro documento:

Aggiungere un documento

Si può avere un caso d’uso in cui è necessario includere pagine aggiuntive da un documento alla fine di un documento esistente. Per fare ciò, è sufficiente chiamare il metodo AppendDocument per aggiungere un documento alla fine di un altro.

Il seguente esempio di codice mostra come aggiungere un documento alla fine di un altro documento:

Importare e inserire manualmente i nodi

Aspose.Words consente di inserire e aggiungere documenti automaticamente senza alcun requisito di importazione precedente. Tuttavia, se è necessario inserire o aggiungere un nodo specifico del documento, ad esempio una sezione o un paragrafo, è necessario prima importare manualmente questo nodo.

Quando è necessario inserire o aggiungere una sezione o un paragrafo a un altro, è essenzialmente necessario importare i nodi del primo albero dei nodi del documento nel secondo utilizzando il metodo ImportNode. Dopo aver importato i nodi, è necessario utilizzare il metodo InsertAfter/InsertBefore per inserire un nuovo nodo dopo/prima del nodo di riferimento. Ciò consente di personalizzare il processo di inserimento importando nodi da un documento e inserendolo in determinate posizioni.

È inoltre possibile utilizzare il metodo AppendChild per aggiungere un nuovo nodo specificato alla fine dell’elenco dei nodi figlio, ad esempio, se si desidera aggiungere il contenuto a livello di paragrafo anziché a livello di sezione.

L’esempio di codice seguente mostra come importare manualmente i nodi e inserirli dopo un nodo specifico utilizzando il metodo InsertAfter:

Il contenuto viene importato nel documento di destinazione sezione per sezione, il che significa che le impostazioni, come l’impostazione della pagina e le intestazioni o piè di pagina, vengono conservate durante l’importazione. È anche utile notare che è possibile definire le impostazioni di formattazione quando si inserisce o si aggiunge un documento per specificare come due documenti vengono uniti insieme.

Proprietà comuni per Inserire e aggiungere documenti

Entrambi InsertDocument e AppendDocument i metodi accettano ImportFormatMode e ImportFormatOptions come parametri di input. Il ImportFormatMode consente di controllare il modo in cui la formattazione del documento viene unita quando si importa il contenuto da un documento in un altro selezionando diverse modalità di formato, ad esempio UseDestinationStyles, KeepSourceFormatting e KeepDifferentStyles. Il ImportFormatOptions consente di selezionare diverse opzioni di importazione come IgnoreHeaderFooter, IgnoreTextBoxes, KeepSourceNumbering, MergePastedLists, e SmartStyleBehavior.

Aspose.Words consente di regolare la visualizzazione di un documento risultante quando due documenti vengono aggiunti insieme in un’operazione di inserimento o aggiunta utilizzando le proprietà Section e PageSetup. La proprietà PageSetup contiene tutti gli attributi di una sezione come SectionStart, RestartPageNumbering, PageStartingNumber, Orientation, e altri. Il caso d’uso più comune è quello di impostare la proprietà SectionStart per definire se il contenuto aggiunto apparirà sulla stessa pagina o diviso in una nuova.

L’esempio di codice seguente mostra come aggiungere un documento a un altro evitando che il contenuto si divida su due pagine: