我有一个由几百页组成的MS Word文档。
每个页面都是相同的,除了一个人的名字在每个页面上是唯一的。(一个页面是一个用户)。
我想把这个word文档和自动化的过程,以单独保存每一页,所以我最终有几百个word文档,每个人一个,而不是一个文件,由每个人组成,我可以分发给不同的人。
我一直在使用这里找到的模块python-docx
:https://python-docx.readthedocs.io/en/latest/
我正在为如何完成这项任务而努力。
据我所知,不可能在每个页面上循环,因为页面不是在.docx文件本身中确定的,而是由程序生成的,即Microsoft Word。
然而python-docx可以解释文本,因为每个页面都是相同的,所以当你看到这个文本(给定页面上的最后一段文本)时,我可以不对python说,把这看作是一个页面的结束,在这一点之后的任何东西都是一个新的页面。
理想情况下,如果我能写一个循环,将考虑这样一个点,并创建一个文档,直到这一点,并重复所有的页面,这将是伟大的。
我不反对其他方法,如转换为PDF第一,如果这是一个选项。
有什么想法吗
3条答案
按热度按时间wgeznvg71#
我遇到了完全相同的问题。不幸的是,我找不到一种方法来按页面拆分.docx。解决方案是首先使用python-docx或docx 2 python(无论你喜欢什么)来迭代每个页面,并提取唯一的(人)信息并将其放入列表中,这样你就得到了:
然后将.docx保存为pdf将pdf按页面拆分,然后将它们保存为person_A. pdf等,如下所示:
结果是一堆一页的PDF文件保存为Person_A.pdf,Person_B.pdf等。
ssgvzors2#
我建议另一个软件包aspose-words-cloud将word文档拆分为单独的页面。目前,它可以与云存储(Aspose云存储,Amazon S3,DropBox,Google Drive Storage,Google Cloud Storage,Windows Azure Storage和FTP Storage)一起使用。然而,在不久的将来,它将支持来自请求主体(流)的流程文件。
P.S:我是Aspose的开发者布道者。
0g0grzrc3#
这是一个在线的DOCX分割器,它可以将您上传的.docx文件分割成多个.docx文件(原始页面的每一页),并将它们作为.zip文件下载。
(2023年4月13日测试,使用30页.docx文件)
https://products.groupdocs.app/splitter/docx