2010-03-17 18 views
5

Sto cercando di unire due documenti docx in un documento docx utilizzando OpenXML SDK 2.0. I documenti devono essere uniti senza perdere il loro stile e intestazioni e piè di pagina personalizzati. Spero di poter ottenere questo risultato utilizzando AltChunk e un'interruzione di sezione. Ma non riesco a farlo funzionare.Documenti di unione

È possibile che cosa sto cercando di fare? Qualcuno può darmi un suggerimento su come raggiungere questo obiettivo?

risposta

1

Utilizzando "Open XML Productivity Tool" ho analizzato la struttura di un documento docx e ho concluso che la fusione di documenti con il loro stile, intestazioni, piè di pagina, ... non è possibile senza l'utilizzo di Altchunk. È possibile scaricare lo strumento separatamente dallo open xml sdk.

Quello che sto facendo ora, e ciò che funziona, è copiare tutto manualmente in documenti, assicurandosi che tutti i riferimenti di stile, i riferimenti di intestazione, i riferimenti a piè di pagina, ... siano conservati. Ciò significa che gli do un nuovo ID univoco prima di copiarli nel documento e di modificare tutti i riferimenti dal vecchio id al nuovo id. C'è molto codice per farlo, ma lo strumento di cui sopra ha davvero aiutato.

L'aggiunta di un'interruzione di sezione è anche abbastanza difficile. Dovresti sapere che il tag SectionProperties descrive tutte le proprietà della sezione e che può esserci uno SectionProperties -tag sotto lo Body -tag, che descrive le proprietà dell'ultima sezione. Quindi aggiungere una nuova interruzione di sezione significa copiare l'ultimo SectionProperties -tag all'ultimo paragrafo della sezione e aggiungere un nuovo SectionProperties -tag sotto il Body -tag. Ho anche ricevuto molte informazioni dallo strumento di produttività.

+0

Puoi pubblicare un codice per questo :-) Alcuni esempi di facile comprensione:> – MadBoy

+0

L'esperienza di Jelle rispecchia il mio. Non è un compito facile e richiede molto più codice di quanto si possa pensare. È particolarmente difficile mantenere gli stili dritti poiché è necessario evitare le collisioni sia del nome dell'ID. –

4

La risposta sopra NON è corretta! Questo è ESATTAMENTE quello che AltChunk è stato progettato per fare, e funziona benissimo!

NOTA: (., Ovviamente, il file deve essere salvato o il file sul disco non verrà aggiornato) che i documenti non saranno fusi in un unico documento finché Word apre il file per la prima volta

See questo blog per ulteriori informazioni su come farlo correttamente: https://blogs.msdn.com/b/ericwhite/archive/2008/10/27/how-to-use-altchunk-for-document-assembly.aspx?Redirected=true

ps Per quanto riguarda l'esame di Open XML utilizzando lo strumento di produttività, il mio parere è semplicemente installare il componente aggiuntivo ufficiale di Visual Studio Open XML e aprire i documenti di Office da Visual Studio per esaminarli, è super conveniente! :-)

+1

funziona anche per mee, anche se in contrasto con Word LibreOffice sembra ignorare altChunks. – metalheart