4

我有一大段代码用于阅读 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.';
}

?>

我还想阅读图像、图表和所有内容并将其显示在网页中。

4

3 回答 3

2

我认为您应该首先使用命令行 Open Office 或 Libre 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(阅读 minimum.js 文件以了解如何插入 pdf)

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

于 2013-11-25T16:58:33.153 回答
1

您应该查看Aspose Cloud。它是一项允许您将 docx 转换为 html 的服务

在 github 上有一个PHP SDK 。

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

祝你好运

于 2013-11-29T17:54:18.780 回答
1

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


如果您只是在寻找一种从 MS Word 文档中提取内容的便捷方法,我强烈建议您查看已经处理文档处理和提取的库。

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

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

  • PHPDocX(这是一个拆分项目。您可以获得具有基本功能集的 LGPL 许可版本或商业付费版本,可以处理您在常见 Word 文档中找到的大多数内容)

高温高压

于 2013-11-29T01:57:25.040 回答