Domanda

Ho bisogno di un processo automatizzato per la creazione di file docx dalla sorgente xhtml. I file XHTML contengono immagini (elementi) <img> cui "src" attributi scegliere un riferimento esterno. Ma i file docx devono essere leggibili senza una connessione di rete, quindi ho bisogno di trovare un modo per incorporare le immagini direttamente nel pacchetto docx (vale a dire, nella cartella / media).

Finora ho usato il metodo altChunk (come descritto da Eric White) per creare il file .docx. Avevo sperato di usare l'OpenXML SDK per inserire le parti di immagine nel pacchetto. Ma per farlo ho bisogno di inserire i paragrafi (nodi <p>) nel documento. Purtroppo la parte documento contiene solo un riferimento al altChunk (immagazzinate separatamente nel pacchetto docx). Naturalmente, una volta che il docx è aperto, modificato e salvato, la parte altChunk viene rimosso e il suo contenuto sono integrati correttamente nel document.xml. Ma io non conosco nessun modo per farlo programmaticamente, in modo che non aiuta.

Altre opzioni Ho considerato:

  1. Partizione del xhtml in segmenti, separati tra ogni immagine, quindi aggiungendo ogni altChunk una alla volta, con il riferimento immagine appropriata fra ciascuno. (Noioso, ma sembra possibile)
  2. Inserimento delle immagini nella cartella dei media, e poi trovare modo per incorporare WordprocessingML direttamente in xhtml in modo che il <img> fa riferimento al file immagine confezionato. (Discutibile al meglio) Qualcuno può pensare ad un approccio migliore?
È stato utile?

Soluzione

Bene, io sorta risolto il mio proprio problema: ho deciso di convertire il documento in MHTML (che può contenere immagini incorporate direttamente nel file) e quindi utilizzare l'altchunk per creare il file docx finale. Tuttavia, ho ancora voglia di fare un po 'di post-elaborazione sul file (da inserire note di chiusura nel documento Word), ma come detto sopra, questo non è possibile fino a dopo l'altchunk è stata trasformata in docx, che non può essere fatto a livello di codice.

Quindi, mi sono reso conto che avrei potuto bypassare il percorso altchunk del tutto e semplicemente utilizzare MHTML come la "porta" da XHTML per DOCX. Ho appena trasformato l'XHTML in MHTML, completo di immagini incorporate e note finali, poi rinominato il file con estensione .doc. Il documento risultante può essere aperto direttamente da Word (e saranno convertiti più propriamente sulla successiva salvare). Finora funziona benissimo (anche se con alcuni bug nella versione per Mac di Word, così come Word2003).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top