使用php阅读带有图像的Ms word文档

时间:2013-10-28 13:01:26

标签: php ms-word ms-office filereader

我有一大堆代码用于阅读MS Office Word文档。

只读取文本而不是所有内容。

<?php
function read_file_docx($filename){

    $striped_content = '';
    $content = '';
    if(!$filename || !file_exists($filename)) return false;
    $zip = zip_open($filename);
    if (!$zip || is_numeric($zip)) return false;
while ($zip_entry = zip_read($zip)) {
        if (zip_entry_open($zip, $zip_entry) == FALSE) continue;
        if (zip_entry_name($zip_entry) != "word/document.xml") continue;
        $content .= zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
        zip_entry_close($zip_entry);
    }

    zip_close($zip);
    $content = str_replace('</w:r></w:p></w:tc><w:tc>', " ", $content);
    $content = str_replace('</w:r></w:p>', "\r\n", $content);
    $striped_content = strip_tags($content);

    return $striped_content;
}

$ filename =“customers.docx”;

$content = read_file_docx($filename);
if($content !== false) {

    echo nl2br($content);   
}
else {
    echo 'Couldn\'t the file. Please check that file.';
}

?>

我想阅读图片,图表和所有内容,并将其显示在网页上。

3 个答案:

答案 0 :(得分:2)

我认为您应该先使用命令行Open Office或将您的doc文档更改为pdf 自由办公室。

与Libre Office会是:

libreoffice --headless --convert-to pdf your_file_name.doc

然后使用pdf.js(https://github.com/mozilla/pdf.js/)在您的网站上显示文档(您不需要adobe reader)

这是另一个最小的例子 https://github.com/vivin/pdfjs-text-selection-demo(阅读minimal.js文件以了解如何插入pdf)

第二个选项是将doc转换为docx并使用https://github.com/stephen-hardy/DOCX.js

答案 1 :(得分:1)

如果您尝试自行提取所有文档内容并转换为匹配的Web显示,我建议您阅读Microsoft的格式规范。


如果您只是想方便地从MS Word文档中提取内容,我强烈建议您查看已经处理文档处理和提取的库。

我知道有2个项目正在处理PHP中的MS Office文档。

  • PHPOffice / PHPWord(我不确定该项目的Word分支已经开发了多远。该项目起源于较小规模,仅支持MS Excel,但他们现在正在使用Word和PowerPoint作为孔)

  • PHPDocX(这是一个拆分项目。您可以获得一个LGPL许可版本,其中包含基本功能集或商业付费版本,可以处理您在常用word文档中找到的大多数内容)< / p>

HTH

答案 2 :(得分:1)

你应该看看Aspose Cloud。 它是一项服务,允许您将docx转换为HTML

github上有一个PHP SDK

如果您每月转换少于100个文档,则有一个免费选项

祝你好运