Frage

Ich benötige einen automatisierten Prozess zum Erstellen von Docx -Dateien aus XHTML -Quelle. Die XHTML -Dateien enthalten Bilder (<img> Elemente), deren "SRC" -attribute auf eine externe Referenz hinweisen. Die DOCX -Dateien müssen jedoch ohne Netzwerkverbindung lesbar sein. Daher muss ich einen Weg finden, um die Bilder direkt in das DOCX -Paket (nämlich im /medialen Ordner) einzubetten.

Bisher habe ich die Altchunk -Methode verwendet (wie beschrieben von Eric White) So erstellen Sie die .docx -Datei. Ich hatte gehofft, das OpenXML SDK zu verwenden, um die Bildteile in das Paket einzulegen. Aber um dies zu tun, muss ich Absätze einfügen (<p> Knoten) in das Dokument. Leider enthält das Dokumentteil nur einen Verweis auf den Altchunk (separat im DOCX -Paket gespeichert). Sobald der DOCX geöffnet, bearbeitet und gespeichert ist, wird der Altchunk -Teil natürlich entfernt und der Inhalt ist ordnungsgemäß in das document.xml eingebettet. Aber ich weiß keine Möglichkeit, dies programmatisch zu tun, das hilft nicht.

Andere Optionen, die ich in Betracht gezogen habe:

  1. Partitionation des XHTML in Segmente, zwischen jedem Bild getrennt und dann jedes Altchunk nacheinander addieren, wobei die entsprechende Bildreferenz zwischen jedem einzelnen entsprechend ist. (Mühsam, aber möglich)
  2. Einfügen die Bilder in den Medienordner und finden Sie dann Weg, um wordprozessierend direkt in das XHTML einzubetten, damit die <img> verweist auf die verpackte Bilddatei. (Bestenfalls fragwürdig) Kann jemand einen besseren Ansatz vorstellen?
War es hilfreich?

Lösung

Nun, ich habe mein eigenes Problem gelöst: Ich habe mich entschlossen, das Dokument in MHTML (das direkt in die Datei eingebettete Bilder enthalten kann) zu konvertieren und dann mit dem Altchunk die endgültige DOCX -Datei zu erstellen. Ich wollte jedoch immer noch eine Nachbearbeitung in der Datei durchführen (um Endnoten in das Word-Dokument einzufügen), aber wie oben erwähnt, ist dies erst möglich, bis nach Der Altchunk wurde in DOCX umgewandelt, was nicht programmatisch durchgeführt werden kann.

So wurde mir klar, dass ich den Altchunk -Pfad insgesamt umgehen und MHTML einfach als "Gateway" von xhtml zu docx verwenden konnte. Ich habe gerade das XHTML in MHTML verwandelt, komplett mit eingebetteten Bildern und Endnoten, dann die Datei mit einer .doc -Erweiterung umbenannt. Das resultierende Dokument kann direkt per Word geöffnet werden (und wird bei der nachfolgenden Speicherung ordentlicher konvertiert). Bisher funktioniert es großartig (wenn auch mit einigen Fehler in Macs Version von Word sowie Word2003).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top