求教 docx 如何按页切分成多个 docx 文件啊?

查看 95|回复 9
作者:foxthree   
问了 gpt 。只会让用 python-docx ,但是用这个包切出来都是缺失格式的,图片跟表格都丢了,而且分不了页,用了下 aspose 的包,确实可以不丢格式,但是那是商用的。大家有知道的吗
whatv3   
用 word 里的 vbs 宏,之前写过一个脚本帮助专利同事自动把文档分割成专利五书...
qazzz   
不知道,但是 gpt 告诉我的:
使用宏自动拆分
以下是一个示例 VBA 宏,它可以自动将 Word 文档按页拆分为多个 .docx 文件:
打开宏编辑器:
打开你的 Word 文档。
按 Alt + F11 打开宏编辑器。
插入新模块:
在宏编辑器中,选择“插入” > “模块”,然后将以下代码粘贴到新模块中:
vba
复制代码
Sub SplitDocumentByPages()
Dim doc As Document
Dim page As Range
Dim newDoc As Document
Dim i As Integer
Dim pageNumber As Integer

Set doc = ActiveDocument
pageNumber = doc.ComputeStatistics(wdStatisticPages)

For i = 1 To pageNumber
Set page = doc.Range.GoTo(What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=i)
page.End = doc.Range.GoTo(What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=i + 1).Start
page.End = page.End - 1

Set newDoc = Documents.Add
newDoc.Range.FormattedText = page.FormattedText
newDoc.SaveAs2 FileName:=doc.Path & "\Page" & i & ".docx"
newDoc.Close
Next i
End Sub
运行宏:
关闭宏编辑器。
按 Alt + F8 打开宏列表。
选择 SplitDocumentByPages 并运行它。
这个宏将会自动将当前打开的 Word 文档按页拆分,并将每一页保存为一个新的 .docx 文件。这些文件将保存到与原始文档相同的文件夹中,文件名格式为 Page1.docx 、Page2.docx ,以此类推。
totoro625   
临时用还是要写脚本跑大量数据?
应急:
1 、打印成 PDF
2 、WPS 自带 PDF 拆分
3 、PDF 批量转成 Word
loopinfor   
如果可以转 PDF 就转 PDF 再分页保存。
也可以用大纲来解决,要分页的地方设置个一级大纲级别的文字,然后在大纲视图里面全选->创建->保存,就可以了。
foxthree
OP
  
@totoro625 脚本跑。要上生产环境的,服务器应该是 linux
foxthree
OP
  
@qazzz 能在服务器上跑的方法呢。。。这在本地电脑好像确实可以
foxthree
OP
  
@loopinfor 单纯只是切割的话,转 pdf 确实可以,但是还有后续转 md 的要求,用包转 pdf 再转成 md ,调研过也会缺失很多东西
kmyq   
python 有个操作 doc 的库吧,可以部署在 linux
foxthree
OP
  
@kmyq 又一个 python-docx 但是好像不是太好用,或者我太菜了发挥不出来..
您需要登录后才可以回帖 登录 | 立即注册

返回顶部