用LibreOffice生成或者更新的文档目录,用WPS Office打开,按住Ctrl键然后点击无法跟踪链接

**先说结论:**经过尝试,我发现用LibreOffice生成或者更新的文档目录(TOC:Table of Contents),用WPS Office打开,按Ctrl键再点击无法跟踪链接;用LibreOffice或者Microsoft Word打开按住Ctrl键可以点击跳转
例如,这个文档目录是用python通过UNO访问LibreOffice更新过的:
在这里插入图片描述
1、用LibreOffice打开,按住Ctrl键,然后点击某个目录项,是可以跳转到链接的标题处的。
2、但是,用WPS Office打开,按住Ctrl键,然后点击某个目录项,出现出错提示,无法跳转到链接的标题处。看起来,WPS的兼容性是有点问题:
在这里插入图片描述
下面,说说我对这个问题的发现、定位过程。
我本来是借鉴别人的代码,在python中通过UNO调用LibreOffice来更新用python-docx生成的文档的目录(TOC:table of contents)。
我参考了:https://github.com/typhoon-hil/LibreOfficeToPDFhttps://www.linuxjournal.com/content/starting-stopping-and-connecting-openoffice-python
代码片段:

# 更新文档目录  
  dispatcher.executeDispatch(doc, ".uno:UpdateAllIndexes", "", 0, ())    
      
  # Saving
  opts = []
      
  if ext == '.docx':
      struct = uno.createUnoStruct("com.sun.star.beans.PropertyValue")
      struct.Name = "FilterName"
      # docx文档格式
      struct.Value = "MS Word 2007 XML"             
      opts.append(struct)    
      
  struct = uno.createUnoStruct('com.sun.star.beans.PropertyValue')
  struct.Name = 'URL'    
  struct.Value = fileUrl_new
  opts.append(struct)
  # 另存为        
  dispatcher.executeDispatch(doc, ".uno:SaveAs", "", 0, tuple(opts))
  # 关闭文档。如果不关闭的话,文档会被lock
  dispatcher.executeDispatch(doc, ".uno:CloseDoc", "", 0, ())

用WPS Office打开上面python代码生成的文档,我此处是D:/temp/pang_new.docx
发现文档目录是更新了,但按住Ctrl键然后点击某一个项,无法跳转到具体的标题处,也就是说超链接没有起作用:
在这里插入图片描述
在这里插入图片描述
我开始以为是不是我python代码中的更新命令不全或者不对,于是将代码dispatcher.executeDispatch(doc, “.uno:UpdateAllIndexes”, “”, 0, ())中的UpdateAllIndexes分别用下面的命令代替尝试:
StyleUpdateByExample
UpdateAll
UpdateAllIndexes
UpdateAllLinks
UpdateCharts
UpdateCurIndex
UpdateFields
UpdateInputFields
折腾了一顿,发现问题依然存在。冥思苦想,问题到底出在什么地方呢?我又尝试了下面方法,最终发现python代码的命令没有问题,而是WPS Office的兼容性有点问题

  • 尝试一:

用WPS打开,点击一下“更新目录”,然后按住Ctrl键点击,就可以跳转了。
在这里插入图片描述

  • 尝试二:

或者用LibreOffice打开,点击目录中的项是可以跳转的。

  • 尝试三:

或者另外直接用WPS创建一篇新文档,填写内容,插入目录并更新保存,然后用LibreOffice打开这篇文档,点击目录中的项是可以跳转的。

  • 尝试四:

或者另外直接用LibreOffice创建一篇新文档,填写内容,插入目录并更新保存,点击可以跳转。然后用WPS打开这篇文档,点击目录中的项却不能跳转。

  • 尝试五:

我又装了Microsoft Office 2010,用其中的Microsoft word打开前面在WPS中点击不能跳转的文档目录,是可以跳转的。

总结:经过上面方法的尝试发现:同一个文档目录,尽管用WPS打开点击不能跳转,但用LibreOffice或者Microsoft Word打开点击都是可以跳转的,这证明了是WPS的兼容性有点问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值