如何使用php更新docx文件的自定义属性

周杰伦

我想阅读docx文件,并且想更改Word文档(* .docx)的部分。我已经将docx转换为zip。我想在docx文件中添加新的自定义属性(docProps / custom.xml)。当我创建新的docx文件时。我可以通过php word添加自定义属性。但是,我想读取docx文件并更新自定义属性。使用phpword是不可能的。

当我将docx转换为zip并打开docpProps / custom.xml。默认情况下,它提供xml内容,如下所示:

当前xml内容:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Properties
    xmlns="http://schemas.openxmlformats.org/officeDocument/2006/custom-properties"
    xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes">
    <property fmtid="{D5CDD505-2E9C-101B-9397-08002B2CF9AE}" pid="1" name="Property Id">
        <vt:lpwstr>121</vt:lpwstr>
    </property>
</Properties>

我要添加新属性并保存到zip文件中,如下所示

更新内容:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Properties
    xmlns="http://schemas.openxmlformats.org/officeDocument/2006/custom-properties"
    xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes">
    <property fmtid="{D5CDD505-2E9C-101B-9397-08002B2CF9AE}" pid="1" name="Property Id">
        <vt:lpwstr>121</vt:lpwstr>
    </property>
    <property fmtid="{D5CDD505-2E9C-101B-9397-08002B2CF9AE}" pid="2" name="Description">
        <vt:lpwstr>Lorem ipsum</vt:lpwstr>
    </property>
    <property fmtid="{D5CDD505-2E9C-101B-9397-08002B2CF9AE}" pid="3" name="User Id">
        <vt:lpwstr>12</vt:lpwstr>
    </property>
</Properties>

我的PHP代码:

        $zip = new \ZipArchive;

        // Open this Zip File
        if ($zip->open('helloWorld.docx') == true) {
            // Get custom xml content
            $xmlContent = $zip->getFromName('docProps/custom.xml');

            // I want to update docProps/custom.xml file

            $zip->close();
        }

任何人怎么可能知道,请回复或给我示例脚本。

周杰伦

我可以使用以下代码更新custom.xml:

    $zip = new \ZipArchive;

    // Open this Zip File
    if ($zip->open('helloWorld.docx') == true) {
        // Get custom xml content
        $xmlContent = $zip->getFromName('docProps/custom.xml');

        // Update docPros/custom.xml content
        $updatedXmlContent = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <Properties
            xmlns="http://schemas.openxmlformats.org/officeDocument/2006/custom-properties"
            xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes">
            <property fmtid="{D5CDD505-2E9C-101B-9397-08002B2CF9AE}" pid="2" name="Id">
                <vt:lpwstr>121</vt:lpwstr>
            </property>
            <property fmtid="{D5CDD505-2E9C-101B-9397-08002B2CF9AE}" pid="3" name="Notes">
                <vt:lpwstr>Lorem ipsum</vt:lpwstr>
            </property>
            <property fmtid="{D5CDD505-2E9C-101B-9397-08002B2CF9AE}" pid="4" name="User">
                <vt:lpwstr>12</vt:lpwstr>
            </property>
        </Properties>';

        //Replace the content with the new content created above.
        $zip->addFromString('docProps/custom.xml', $updatedXmlContent);
        $zip->close();
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何包含自定义的php文件?

来自分类Dev

如何以编程方式更新应用程序配置文件中的自定义属性

来自分类Dev

自定义文件属性

来自分类Dev

自定义文件属性

来自分类Dev

PHP Imagick:如何将自定义图像属性保存到文件

来自分类Dev

如何使用图谱API更新Azure Ad B2c自定义用户属性

来自分类Dev

如何使用自定义产品属性值更新woocommerce销售价格?

来自分类Dev

使用Rally用户管理更新自定义用户属性

来自分类Dev

无法使用自定义属性更新 AspNetUsers 身份

来自分类Dev

如何使用属性设置自定义UITypeEditor的属性

来自分类Dev

如何使用Perl检索文本文件的自定义属性

来自分类Dev

如何使用Installshield在MSI文件属性中动态自定义产品版本

来自分类Dev

如何使用自定义存储属性模拟 django 中的媒体文件目录?

来自分类Dev

使用自定义TableModel和从文件中读取的项目列表时,如何更新jtable

来自分类Dev

如何在使用 SenseNet dotnet 客户端上传文件后更新自定义字段

来自分类Dev

如何使用PHP Simple HTML DOM Parser添加自定义属性

来自分类Dev

如何使用PHP Simple HTML DOM Parser添加自定义属性

来自分类Dev

Github风味Markdown和docx的自定义样式属性

来自分类Dev

更新自定义listview项属性

来自分类Dev

从连接表更新自定义属性

来自分类Dev

如何使用自定义事件(特别是自定义dataTransfer属性)触发事件?

来自分类Dev

如何在保留类型自定义的同时使用AutoFixture构建自定义属性?

来自分类Dev

如何使用UICollectionViewTransitionLayout插入自定义UICollectionViewLayoutAttributes属性

来自分类Dev

如何使用自定义订单属性对枚举排序?

来自分类Dev

自定义Authorize属性时如何使用“ Roles”参数

来自分类Dev

如何使用Python读取Blender中的自定义属性?

来自分类Dev

如何使用自定义属性过滤产品列表

来自分类Dev

如何使用jQuery引用我自己的自定义属性

来自分类Dev

如何使用带有自定义属性的引用?

Related 相关文章

  1. 1

    如何包含自定义的php文件?

  2. 2

    如何以编程方式更新应用程序配置文件中的自定义属性

  3. 3

    自定义文件属性

  4. 4

    自定义文件属性

  5. 5

    PHP Imagick:如何将自定义图像属性保存到文件

  6. 6

    如何使用图谱API更新Azure Ad B2c自定义用户属性

  7. 7

    如何使用自定义产品属性值更新woocommerce销售价格?

  8. 8

    使用Rally用户管理更新自定义用户属性

  9. 9

    无法使用自定义属性更新 AspNetUsers 身份

  10. 10

    如何使用属性设置自定义UITypeEditor的属性

  11. 11

    如何使用Perl检索文本文件的自定义属性

  12. 12

    如何使用Installshield在MSI文件属性中动态自定义产品版本

  13. 13

    如何使用自定义存储属性模拟 django 中的媒体文件目录?

  14. 14

    使用自定义TableModel和从文件中读取的项目列表时,如何更新jtable

  15. 15

    如何在使用 SenseNet dotnet 客户端上传文件后更新自定义字段

  16. 16

    如何使用PHP Simple HTML DOM Parser添加自定义属性

  17. 17

    如何使用PHP Simple HTML DOM Parser添加自定义属性

  18. 18

    Github风味Markdown和docx的自定义样式属性

  19. 19

    更新自定义listview项属性

  20. 20

    从连接表更新自定义属性

  21. 21

    如何使用自定义事件(特别是自定义dataTransfer属性)触发事件?

  22. 22

    如何在保留类型自定义的同时使用AutoFixture构建自定义属性?

  23. 23

    如何使用UICollectionViewTransitionLayout插入自定义UICollectionViewLayoutAttributes属性

  24. 24

    如何使用自定义订单属性对枚举排序?

  25. 25

    自定义Authorize属性时如何使用“ Roles”参数

  26. 26

    如何使用Python读取Blender中的自定义属性?

  27. 27

    如何使用自定义属性过滤产品列表

  28. 28

    如何使用jQuery引用我自己的自定义属性

  29. 29

    如何使用带有自定义属性的引用?

热门标签

归档