有没有办法使用 PHP 提取 .doc 文件的内容及其样式?
Posted
技术标签:
【中文标题】有没有办法使用 PHP 提取 .doc 文件的内容及其样式?【英文标题】:Is there a way to extract the content of a .doc file along with its styles using PHP? 【发布时间】:2022-01-22 22:05:15 【问题描述】:我正在尝试提取 .doc 文件的内容(及其样式),然后将其上传到 WordPress 以创建新帖子。
我正在使用 phpWord 库,但我只能获取纯文本的内容,我想知道是否可以提取数据及其样式。
编辑:
我已经修改了我的代码,虽然我仍然无法获得样式,但我能够获得由 PHPWord 本身生成的 html 格式的文档。
正如我在前几行中提到的那样,问题在于样式并且它没有保留任何图像,当我保存时它们都被删除了。
目前,从 .doc 中提取信息的部分代码如下所示:
$source = 'c0000001.doc';
$phpWord = \PhpOffice\PhpWord\IOFactory::load($source, 'MsDoc');
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'HTML');
$objWriter->save('output.html');
非常感谢您的帮助。
【问题讨论】:
【参考方案1】:是的,您可以按照以下方式进行操作
// Read contents
$source = 'c0000001.doc';
echo date('H:i:s'), " Reading contents from `$source`";
$phpWord = \PhpOffice\PhpWord\IOFactory::load($source, 'MsDoc');
$text = '';
$sections = $phpWord->getSections();
foreach ($sections as $s)
$els = $s->getElements();
foreach ($els as $e)
if(!$e instanceof \PhpOffice\PhpWord\Element\Text)
continue;
$text .= $e->getText();
$styles = $e->getParagraphStyle(); //do somethign witth the style
$styles = $e->getFontStyle(); //do somethign witth the style
方法来源:https://github.com/PHPOffice/PHPWord/blob/develop/src/PhpWord/Element/Text.php
【讨论】:
这会返回以下错误:致命错误:未捕获错误:调用未定义的方法 PhpOffice\PhpWord\Element\Text::getStyle() @Alex 啊抱歉我改了答案 我刚刚修改了我的问题,我已经取得了进展,但是我有新的问题。以上是关于有没有办法使用 PHP 提取 .doc 文件的内容及其样式?的主要内容,如果未能解决你的问题,请参考以下文章
从Txt,PDf,Google云端硬盘中的Doc文件中提取电子邮件地址