Php 如何以编程方式打开docx文件,对其进行编辑,然后再次将其密封而不使其损坏?

Php 如何以编程方式打开docx文件,对其进行编辑,然后再次将其密封而不使其损坏?,php,converter,openoffice.org,docx,libreoffice,Php,Converter,Openoffice.org,Docx,Libreoffice,我有一个web应用程序,可以使用LibreOffice将microsoft word文档转换为html。一切都很好,但我对他们解释某些文件缩进的能力有一些问题 使用其他类型开发人员的建议,我发现了如何通过将docx文件转换为zip文件、解压缩,然后提取document.xml文件来分离docx文件。在这个过程中,我注意到LibreOffice始终无法解释任何标记并将它们呈现为缩进 我已经尝试了很多方法来解决这个问题,但是我已经没有办法了。我最后的努力是使用php以编程方式将所有标记替换为标记(L

我有一个web应用程序,可以使用LibreOffice将microsoft word文档转换为html。一切都很好,但我对他们解释某些文件缩进的能力有一些问题

使用其他类型开发人员的建议,我发现了如何通过将docx文件转换为zip文件、解压缩,然后提取document.xml文件来分离docx文件。在这个过程中,我注意到LibreOffice始终无法解释任何
标记并将它们呈现为缩进

我已经尝试了很多方法来解决这个问题,但是我已经没有办法了。我最后的努力是使用php以编程方式将所有
标记替换为
标记(LibreOffice成功地将其解释为选项卡)。但是,一旦我用bash将文件转换为.zip,我就无法将其作为docx进行密封备份。我的意思是,我可以做到,但LibreOffice不再识别它,并向我抛出一个奇怪的错误

是否有任何方法可以通过拉document.xml文件获得html呈现?如果没有,有人知道如何重新密封这些文件吗?非常感谢您的帮助。谢谢

这里有一个更新:当我试图压缩docx备份时,它似乎包含了父目录。当我将文件转换回docx格式时,我认为这会弄乱文件。我似乎不知道如何在不同时压缩文件夹的情况下压缩文件夹的所有内容。有什么想法吗?以下是迄今为止的代码:

cp mydoc.docx mydoc.zip
unzip -d mydoc mydoc.zip
zip -r my_edited_doc mydoc/*

我找到了答案!要完成修改并重新压缩文件,请确保未包含压缩文件的父目录。为此,我将目录更改为父目录,然后运行以下代码:

zip -r mydoc ./*
完整代码如下所示:

cp mydoc.docx mydoc.zip
unzip -d mydoc mydoc.zip
cd mydoc
zip -r mydoc_converted ./*