使用Perl / Batch / Python更新MS Word文档的详细信息“内容状态”

让·弗朗索瓦·T。

我目前正在尝试修改Windows Word资源管理器中MS Word .docx文件属性(即,从Windows资源管理器>属性>详细信息右键单击文件)中“详细信息”部分中显示的“内容状态”字段,如下所示下面的屏幕截图。

右键单击>属性>详细信息

有谁知道如何使用Perl脚本(或最终批处理脚本或python)更改“内容状态”的值?

我熟悉Win32:OLE来修改Excel和Word文档,但不知道如何解决该问题。

谢谢

让·弗朗索瓦·T。

感谢“ Haf Linger”,我设法找到了解决问题的答案:

#!perl

use strict;
use Archive::Zip qw( :ERROR_CODES :CONSTANTS );

##CONFIG##
my $new_status="Closed";
my $docx_name="TEST.docx";
my $tmp_name="tmp.docx";
my $replace_file=1; #set to 0 for testing purpose
####

#Open docx file
my $doc = Archive::Zip->new($docx_name);

#Retrieve old status
my $old_status=undef;
my $new_content=$doc->contents('docProps/core.xml');
if ($new_content=~s%<cp:contentStatus>\s*(.*?)\s*</cp:contentStatus>%%) {
    $old_status=$1;
} else {}

#Update with new status
printf "Update status of $docx_name to '$new_status'%s: ",
    (defined $old_status ? " (previously '$old_status')" : "");
$new_content=~s%(</cp:coreProperties>)%<cp:contentStatus>$new_status</cp:contentStatus>$1%;
my ($content, $status) = $doc->contents('docProps/core.xml',$new_content);
if ($status) { 
    print "error during update of status of $docx_name ($!)\n"; 
} else {
    print "done!\n";
}

#Save file to temporary file
unless ( $doc->writeToFileNamed($tmp_name) == AZ_OK ) {
       die 'write error';
   }

#Replace if needed
if ($replace_file) {
    use File::Copy;
    move($tmp_name, $docx_name);
} else {}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Perl / Batch / Python更新MS Word文档的详细信息“内容状态”

来自分类Dev

使用Perl / Batch / Python更新MS Word文档的详细信息“内容状态”

来自分类Dev

如何使用Python Docx更新MS Word中的字段

来自分类Dev

使用XSLT更新XML中的节点详细信息

来自分类Dev

使用php和mySQL更新帐户详细信息

来自分类Dev

如何使用漂亮的汤和python刮刮卡详细信息

来自分类Dev

如何使用 python 访问 JSON 中的子详细信息?

来自分类Dev

当使用Apple脚本打开会议窗口时,如何从MS Outlook获取会议详细信息

来自分类Dev

使用模态表单更新数组中的对象并显示更新的详细信息

来自分类Dev

如何使用 Python 更改 Word 文档的内容?

来自分类Dev

每个iText文档有多个渲染器:更新了更多详细信息

来自分类Dev

每个iText文档有多个渲染器:更新了更多详细信息

来自分类Dev

如何使用表单和视图更新当前用户的详细信息

来自分类Dev

使用列表框中的联系人详细信息更新文本框

来自分类Dev

在不使用accountid Dynamics CRM的情况下更新帐户详细信息

来自分类Dev

如何使用cmis api从Alfresco中的文档ID获取文件夹详细信息

来自分类Dev

如何使用Pandas Not Workbook xlsxwritter设置Excel工作表的文档属性详细信息?

来自分类Dev

有没有办法在Windows中使用python设置文件的详细信息?

来自分类Dev

使用PrettyTable在目录中打印出Python文件的详细信息

来自分类Dev

使用Python将JSON详细信息保存到Excel文件中

来自分类Dev

在python中使用Api获取其他linkedin用户的个人资料详细信息

来自分类Dev

在映射的详细信息内使用按钮会引发错误“渲染未返回任何内容”

来自分类Dev

Laravel帐户详细信息更新

来自分类Dev

在AngularJS中更新父子详细信息

来自分类Dev

如何使用Perl在MS Word中检查超链接?

来自分类Dev

使用 AWS Batch 更新到 RDS

来自分类Dev

使用ServiceStack的IAuthRepository获取详细信息

来自分类Dev

在Casperjs中使用url的详细信息

来自分类Dev

使用LINQ获取XDocument的详细信息

Related 相关文章

  1. 1

    使用Perl / Batch / Python更新MS Word文档的详细信息“内容状态”

  2. 2

    使用Perl / Batch / Python更新MS Word文档的详细信息“内容状态”

  3. 3

    如何使用Python Docx更新MS Word中的字段

  4. 4

    使用XSLT更新XML中的节点详细信息

  5. 5

    使用php和mySQL更新帐户详细信息

  6. 6

    如何使用漂亮的汤和python刮刮卡详细信息

  7. 7

    如何使用 python 访问 JSON 中的子详细信息?

  8. 8

    当使用Apple脚本打开会议窗口时,如何从MS Outlook获取会议详细信息

  9. 9

    使用模态表单更新数组中的对象并显示更新的详细信息

  10. 10

    如何使用 Python 更改 Word 文档的内容?

  11. 11

    每个iText文档有多个渲染器:更新了更多详细信息

  12. 12

    每个iText文档有多个渲染器:更新了更多详细信息

  13. 13

    如何使用表单和视图更新当前用户的详细信息

  14. 14

    使用列表框中的联系人详细信息更新文本框

  15. 15

    在不使用accountid Dynamics CRM的情况下更新帐户详细信息

  16. 16

    如何使用cmis api从Alfresco中的文档ID获取文件夹详细信息

  17. 17

    如何使用Pandas Not Workbook xlsxwritter设置Excel工作表的文档属性详细信息?

  18. 18

    有没有办法在Windows中使用python设置文件的详细信息?

  19. 19

    使用PrettyTable在目录中打印出Python文件的详细信息

  20. 20

    使用Python将JSON详细信息保存到Excel文件中

  21. 21

    在python中使用Api获取其他linkedin用户的个人资料详细信息

  22. 22

    在映射的详细信息内使用按钮会引发错误“渲染未返回任何内容”

  23. 23

    Laravel帐户详细信息更新

  24. 24

    在AngularJS中更新父子详细信息

  25. 25

    如何使用Perl在MS Word中检查超链接?

  26. 26

    使用 AWS Batch 更新到 RDS

  27. 27

    使用ServiceStack的IAuthRepository获取详细信息

  28. 28

    在Casperjs中使用url的详细信息

  29. 29

    使用LINQ获取XDocument的详细信息

热门标签

归档