本发明属于文档管理,涉及一种docx文档交叉引用自动修正的方法。
背景技术:
1、word作为主要的文档处理工具,深受人们的喜爱。而现有的word中交叉引用的设置只能通过编号项,标题,书签,脚注,尾注,表格,公式,图表这八大类型进行设置,但当我的段落不属于这八大类型中的一种,它就是一些其它特殊的段落,此时word文档中的交叉引用功能将不是很便捷的满足我需求。当然,你也可以先给这些特殊段落应用上面这八种类型格式中的一种,然后设置交叉引用,设置成功后再清除这八种格式,如此操作就很不方便。
技术实现思路
1、为解决上述问题,本发明提供一种可以为部分特殊且不是八种类型的段落设置交叉引用、同时具备处理了交叉引用引用源错误的docx文档交叉引用自动修正的方法。
2、一种docx文档交叉引用自动修正的方法,包括以下步骤:
3、步骤1,确定需要设置交叉引用的段落,并用集合x存储起来;
4、步骤2,自定义一个书签名;
5、步骤3,对自定义的书签名进行累加处理,对每次累加后得到的书签名判断;
6、步骤4,给集合x中的每个段落都设置一个有效的书签名,再将段落中的索引与书签名一一对应起来形成一个hash表;
7、步骤5,遍历文档中使用了交叉引用的内容编号,并进行判断;
8、步骤6,根据步骤5的判断,可以分为三种结果,判断结果为交叉引用正确,则跳过;判断结果为交叉引用错误,则引用源丢失,通过寻找域代码值来确定引用源,并将此域代码值转换为阿拉伯数字 ;
9、步骤7,得到转换后的域代码值,在步骤4中的hash表中找到对应的书签名,将原本的域代码替换为书签名;
10、步骤8,对于纯文本的引用编号,通过步骤4中的hash表中找到对应的书签名,将原本的纯文本转换为域代码为书签名的域代码。
11、进一步的,所述步骤2还包括:自定义一个书签名为_ref000000001,其中_ref表示它是word的书签类型,000000001保证和word有相同的结构而定义。
12、进一步的,所述步骤4还包括:采用open xml公共外接方法,在段落的最开头插入一个书签开始标记bookmarkstart,用书签名构造书签开始标记,在段落的最末尾插入一个书签结束标记bookmarkend,用同样的书签名构造书签结束标记。
13、进一步的,所述步骤6还包括;遍历word文档中所有的交叉引用的域代码,检查这些域代码是否有效。
14、进一步的,所述步骤6的域代码值为阿拉伯数字或罗马数字。
15、进一步的,所述步骤7还包括:步骤4中的hash中未找到对应的书签名,则将该域代码值用一个纯文本保留,删除该域代码并用纯文本替换。
16、进一步的,所述步骤8还包括:将纯文本的引用编号转换为阿拉伯数字。
17、进一步的,所述步骤8还包括:如果在hash表中未找到对应书签名,则不予处理。
18、本发明的有益效果:1、本发明可以直接给普通的word文档段落设置交叉引用,不需要多余的操作,提高效率。2、通过域代码值确定引用源,从而将引用源错误的交叉引用修改为正确的交叉引用,可以自动处理引用错误的情况,避免人们纠错浪费时间。
1.一种docx文档交叉引用自动修正的方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种docx文档交叉引用自动修正的方法,其特征在于,所述步骤2还包括:自定义一个书签名为_ref000000001,其中_ref表示为word的书签类型。
3.根据权利要求2所述的一种docx文档交叉引用自动修正的方法,其特征在于,所述步骤4还包括:采用open xml公共外接方法,在段落的最开头插入一个书签开始标记bookmarkstart,用书签名构造书签开始标记,在段落的最末尾插入一个书签结束标记bookmarkend,用同样的书签名构造书签结束标记。
4.根据权利要求3所述的一种docx文档交叉引用自动修正的方法,其特征在于,所述步骤6还包括;遍历word文档中用于交叉引用的域代码,检查域代码是否有效。
5.根据权利要求4所述的一种docx文档交叉引用自动修正的方法,其特征在于,所述步骤6的域代码值为阿拉伯数字或罗马数字。
6.根据权利要求5所述的一种docx文档交叉引用自动修正的方法,其特征在于,所述步骤7还包括:步骤4中的hash中未找到对应的书签名,则将该域代码值用一个纯文本保留,删除该域代码并用纯文本替换。
7.根据权利要求6所述的一种docx文档交叉引用自动修正的方法,其特征在于,所述步骤8还包括:将纯文本的引用编号转换为阿拉伯数字。
8.根据权利要求7所述的一种docx文档交叉引用自动修正的方法,其特征在于,所述步骤8还包括:如果在hash表中未找到对应书签名,则不予处理。