将powerpoint转换为一组powerpoint文件的xml格式

2024-06-28 15:44:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要将一堆powerpoint文件转换成xml格式

我必须在不打开文件的情况下更改大约100个powerpoint文件中的所有字体。每张幻灯片中有几种形状类型,每种形状可能有不同的字体。我使用python-pptx包并编写了一些代码来更改powerpoint演示文稿中所有文本的字体。但是,事实证明,它并不适用于所有语言(有关更多详细信息,请参见change all fonts in powerpoint without opening the file

我将powerpoint文件保存为xml,然后更改其中的所有字体。然后,当我用powerpoint打开文件时,它工作正常,所有字体都已更改!。现在,我正在尝试使用python代码将所有这些powerpoint文件保存为.xml。 我仔细研究了一下python-pptx是否提供了这样的功能,但什么也找不到

========================================更新=== 我使用了opc extract,得到了:

` opc extract .\f10.pptx
usage: opc extract [-h] PKG_PATH DIRPATH
opc extract: error: the following arguments are required: DIRPATH
(base) PS C:\Users\a_oro\Downloads\pptxfile> opc extract f10.pptx .
Traceback (most recent call last):
  File "c:\users\a_oro\miniconda3\lib\runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "c:\users\a_oro\miniconda3\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "C:\Users\a_oro\Miniconda3\Scripts\opc.exe\__main__.py", line 7, in <module>
  File "c:\users\a_oro\miniconda3\lib\site-packages\opcdiag\cli.py", line 304, in main
    command_controller.execute(argv)
  File "c:\users\a_oro\miniconda3\lib\site-packages\opcdiag\cli.py", line 53, in execute
    command.execute(args, self._app_controller)
  File "c:\users\a_oro\miniconda3\lib\site-packages\opcdiag\cli.py", line 228, in execute
    app_controller.extract_package(args.pkg_path, args.dirpath)
  File "c:\users\a_oro\miniconda3\lib\site-packages\opcdiag\controller.py", line 66, in extract_package
    package.prettify_xml()
  File "c:\users\a_oro\miniconda3\lib\site-packages\opcdiag\model.py", line 54, in prettify_xml
    for pkg_item in self._pkg_items.itervalues():
AttributeError: 'dict' object has no attribute 'itervalues' 

我感谢任何帮助或评论


Tags: 文件inpylibline字体siteextract
1条回答
网友
1楼 · 发布于 2024-06-28 15:44:05

有一个名为opc-diag的配套软件包,可以帮助您完成部分任务。您可以通过以下方式安装它:

pip install opc-diag

然后从命令行可以:

opc extract PPTXFILE DIRECTORY

这个“解包”将.pptx“包”打包成它的组件(文件),其中大部分是XML。它还将它们重新格式化以便于编辑,而不是PowerPoint存储的“一行一个文件”格式

然后你可以用sed做一些全局编辑,我想或者你决定的任何东西

然后你可以做:

opc repackage DIRECTORY PPTX-FILE

更改后,您将再次获得一个可加载的.pptx文件

因此,把所有这些放在一起:

opc extract my.pptx working_dir
#  - run editing script or edit files by hand  -
opc repackage working_dir my_edited.pptx

相关问题 更多 >