2009-10-01 7 views
8

Ich möchte eine Word-Import-Funktion zu unserem CMS hinzufügen, das einzige Problem, das ich nicht finden kann, eine gute Bibliothek zum Lesen von docx-Dateien (Word 2007) zu finden.lesen docx (Office Open XML) in PHP

Hat jemand einige Empfehlungen, sollte die Bibliothek in der Lage sein, Inhalt des Dokuments und grundlegende Styling wie kursiv, fett, hochgestellt zu extrahieren?

Danke für Ihre Hilfe

Antwort

2

Oder, seit Sie eine Bibliothek angefordert haben, möchten Sie vielleicht in etwas wie Docvert suchen. Ich habe mich nur nach deiner Frage umgeschaut und es ist mein Favorit für PHP. Sie geben das Wort file location ein, es verwandelt es in etwas Einfaches mit den Attributen und dem ganzen guten Zeug.

+0

sieht vielversprechend aus, aber ich würde eine API davon machen müssen. – RageZ

11

docx Dateien sind eigentlich nur Container für die XML des Dokuments. Sie sollten in der Lage sein, die docx-Datei zu entpacken und dann zu dem Word-Ordner innerhalb und dann zu der document.xml zu gehen. Dies hat den eigentlichen Text. Aber Dinge wie die Schriften und Stile sind in anderen XML-Dateien im docx-Container enthalten, also wirst du wahrscheinlich ein bisschen herumspielen und herausfinden wollen, was was ist und wie man es anpasst (fang mit Namespaces an).

Aber ja, entpacken Sie die Datei und verwenden Sie dann simplexml, um sie in etwas umzuwandeln, mit dem Sie herumspielen können.

+0

Danke, aber ich frage mich, ob jemand nicht mit einer Bibliothek kam, um das zu tun. Ich würde einige XSLT-Verarbeitung machen, wenn ich wirklich brauche. – RageZ

+0

Siehe meine andere Antwort. Das einzige, was ich daran nicht mag, ist der Mangel an einfach zu finden API – Anthony

+0

die Klasse TbsZip kann den Inhalt von Zip-Archiven ohne Abhängigkeit oder temporäre Dateien lesen (und sogar bearbeiten). XML-Analyse kann mit mehreren anderen Tools durchgeführt werden. – Skrol29

3

lizenziert finde ich nur haben Eine Bibliothek, die sowohl Lese-und Schreib-Unterstützung hat, überprüfen Sie es auf der Codeplex-Schmiede http://openxmlapi.codeplex.com und es ist unter GPLv2 lizenziert.

0

Konvertieren Sie ein DOCX-Dokument in ein ODT mit OpenOffice. Verwenden Sie dann eZ Components zum Parsen und Importieren. Sie verwenden den Import tatsächlich in ihrer CMZ eZ Publish.

4

PHPDocX PRO enthält eine TransformDoc Klasse, die .docx (zip) Dateien lesen und erzeugen XHTML (oder PDF) davon:

... 
require_once 'phpdocx_pro/classes/TransformDoc.inc'; 
$doc = new TransformDoc(); 
$doc->setStrFile($file->filepath); 
$doc->generateXHTML(); 
$html = $doc->getStrXHTML(); 
+1

Dies erfordert eine Lizenz – user478636

+0

@ user478636, Nope, es ist verfügbar auf Community-Edition. –