2009-10-01 27 views
8

私はCMSに単語のインポート機能を追加したいのですが、唯一の問題はdocxファイル(Word 2007)を読むための良いライブラリを見つけることができないようです。PHPでdocx(Office Open XML)を読む

誰かがいくつかの推奨事項を持っていますか?ライブラリは、文書の内容と斜体、太字、上付き文字のような基本的なスタイルを抽出できる必要がありますか?あなたの助けのための

おかげ

答えて

2

ライブラリをリクエストしたので、Docvertのようなものを調べるとよいでしょう。私はちょうどあなたの質問に基づいて周りを見ていた、それはPHPのためのこれまでの私のお気に入りです。単語ファイルの場所を入力すると、それは属性とそのすべての良いもので単純なものに変換されます。

+0

は有望に見えますが、私はAPIを作る必要があります。 – RageZ

11

docxファイルは、実際に文書のXMLのためだけのコンテナです。あなたは、docxファイルを解凍してから、wordフォルダ内、次にdocument.xmlに行くことができるはずです。これには実際のテキストがあります。しかし、フォントやスタイルのようなものはdocxコンテナ内の他のxmlファイルにあるので、ちょっと混乱させて、何が何であり、それをどのように一致させるかを理解したいと思うでしょう(名前空間から始めます。

しかし、確かにファイルを解凍し、次にsimplexmlを使用して実際にそれを混乱させるようなものに変換してください。

+0

ありがとうございますが、誰かがそれを行うために図書館を持っていないのかどうか疑問に思っています。私は本当に必要な場合、私はいくつかのXSLT処理を行います。 – RageZ

+0

私の他の答えを見てください。私が気に入らないのは、APIを見つけるのが簡単でないことだけです。 – Anthony

+0

TbsZipクラスは、依存関係も一時ファイルも持たないzipアーカイブのコンテンツを読むことができます(さらに編集することもできます)。 XML分析は他のいくつかのツールで行うことができます。 – Skrol29

4

これを実行するためのライブラリがありますが、それはZendのフレームワークと連携しそれは、phpLiveDocxと呼ばれ、それはあなたに を助けるかもしれ読み取りと書き込みの両方をサポートするライブラリは、コードプレックス偽で確認しますhttp://openxmlapi.codeplex.comGPLv2のライセンスを受けています。

0

OpenOfficeを使用してdocxドキュメントをodtに変換します。次に、eZ Componentsを使用して、解析とインポートを行います。彼らは実際にCMZ eZ Publishでインポートを使用します。

4

PHPDocX PROは、それからの.docxに(ZIP)ファイルを読み、XHTML(またはPDF)を生成することができTransformDocクラスが含まれています。ここでは

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

これは、ライセンスが必要です – user478636

+0

@ user478636、いいえ、コミュニティ版で利用可能です。 –