MS Word文書をアップロードして、自分のサイトのページにエクスポートできるようにしたい。
これを達成する方法はありますか?
//FUNCTION :: read a docx file and return the string
function readDocx($filePath) {
// Create new Zip archive
$Zip = new ZipArchive;
$dataFile = 'Word/document.xml';
// Open received archive file
if (true === $Zip->open($filePath)) {
// If done, search for the data file in the archive
if (($index = $Zip->locateName($dataFile)) !== false) {
// If found, read it to the string
$data = $Zip->getFromIndex($index);
// Close archive file
$Zip->close();
// Load XML from a string
// Skip errors and warnings
$xml = DOMDocument::loadXML($data, LIBXML_NOENT | LIBXML_XINCLUDE | LIBXML_NOERROR | LIBXML_NOWARNING);
// Return data without XML formatting tags
$contents = explode('\n',strip_tags($xml->saveXML()));
$text = '';
foreach($contents as $i=>$content) {
$text .= $contents[$i];
}
return $text;
}
$Zip->close();
}
// In case of failure return empty string
return "";
}
ZipArchiveとDOMDocumentはどちらもPHP内にあるため、追加のライブラリをインストール/インクルード/必要とする必要はありません。
PHPDocX を使用できます。
事実上すべてのHTMLCSSスタイルをサポートしています。さらに、テンプレートを使用して、replaceTemplateVariableByHTML
を介してHTMLにフォーマットを追加することもできます。
PHPDocXのHTMLメソッドでは、Wordスタイルを直接使用することもできます。次のようなものを使用できます。
$docx->embedHTML($myHTML, array('tableStyle' => 'MediumGrid3-accent5PHPDOCX'));
すべてのテーブルでMediumGrid3-accent5Wordスタイルを使用する場合。 embedHTMLメソッドとそのバージョンのテンプレート(replaceTemplateVariableByHTML
)は継承を保持します。つまり、事前定義されたWordスタイルを使用して、そのプロパティのいずれかをCSSでオーバーライドできます。
'JQuery type'セレクターを使用して、HTMLの選択した部分を抽出することもできます。
これはあなたに役立つかもしれません DocxをHTMLに変換する方法
Print2flashライブラリを使用して、Wordのdocxドキュメントをhtmlに変換できます。これは、ドキュメントをhtmlに変換するクライアントのサイトからのPHPの抜粋です。
include("const.php");
$p2fServ = new COM("Print2Flash4.Server2");
$p2fServ->DefaultProfile->DocumentType=HTML5;
$p2fServ->ConvertFile($wordfile,$htmlFile);
$ wordfile変数でパスが指定されているドキュメントを、$ htmlFile変数で指定されているhtmlページファイルに変換します。すべての書式設定、ハイパーリンク、およびグラフが保持されます。 Print2flash SDK から、必要なconst.phpファイルと完全なサンプルをまとめて入手できます。
REST APIを拒否しない場合は、次を使用できます。
RawTextのサンプルコード:
$result = $rawText -> parse($your_file)