3

我有一个使用 LibreOffice 将 microsoft word 文档转换为 html 的 Web 应用程序。一切都很好,但是我在解释某些文件的缩进的能力方面遇到了一些问题。

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

我已经尝试了很多方法来解决这个问题,但我的想法已经不多了。我最后的努力是使用 php 以编程方式将所有<w:tab>标签替换为<w:ind>标签(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/*
4

1 回答 1

2

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

zip -r mydoc ./*

完整的代码如下所示:

cp mydoc.docx mydoc.zip
unzip -d mydoc mydoc.zip
cd mydoc
zip -r mydoc_converted ./*
于 2013-08-20T03:28:42.160 回答