word删除内容后不删除书签_批量快速制作PDF书签

a4d78d6034e9398541d6a38ee4dbe101.png

之前一直有一个烦恼,网上下载的PDF电子书很多没有标签,扫描版的也不能搜索,只能一页一页的找,或者用略缩图定位,都很不方便。开始的时候会手动添加一些常用章节的标签,但是效率很低……

于是,痛定思痛,下定决心找一个能快速添加标签的方法

经过半天的折腾,终于找到了一个对我来说最简单,不需要输代码(Java、Python),只需要两个小软件就可以搞定的方法:

以下只是我个人使用的操作步骤,并不一定适用每个人。

以下内容全部来自网络,版权归原作者所有。

PdgCntEditor原作者“老马的原创空间”下载地址:百度云网盘(点击链接),提取码:tyor 。

Freepic2pdf是电脑端一款实用的图片转PDF应用软件,其功能很多,我只用到了其中的取书签和挂书签功能。下载地址网上很多。

—————————————————分割线——————————————

2020年6月9日更新

发现PdgCntEditor一个软件就可以完成了

1 打开PdgCntEditor后,用PdgCntEditor打开需要添加书签的PDF文件,然后把制作好的书签目录粘贴进去,目录标签分级+自动添加页码,然后点“PDF选项”设置基准页,最后保存就行了,比之前的简单多了。详见图↓

9c87fe2140903fb642556123ad7b1a57.png

  • 所需软件PdgCntEditorFreePic2Pdf

d9cd96bf8351b49bb3c5330f227c8ceb.png
FreePic2Pdf PdgCntEditor
  • 准备工作:需要加标签的Pdf文件一个(我是下的知网的博硕士论文PDF版,caj格式的太难用)
  • 如果这个PDF文件可以复制目录内容,直接复制目录内容>粘贴到Word里>把没用的标点、空格全部通过替换删除
  • 不能复制的话用OCR软件(Adobe acrobat就可以,或者天若OCR之类的)文字识别之后再复制贴到Word里>把没用的标点、空格全部通过替换删除。
  • 大概弄成下面的样子↓

4ed0304fa9eed329155c1d8484937381.png
粘贴到Word并删除无用的标点和空格之后

接下来打开PdgCntEditor, 把Word中的目录粘贴到PdgCntEditor软件里面,全选目录文字进行→“选定区域自动缩进”>再“自动切分页码”(如图↓)

7baa1b7fead5c57e4296167f03bef8da.png
目录标签分级+自动添加页码

055eb5b8f7d9ede1a699162367984a03.png
完成之后效果

然后打开FreePic2Pdf,选择“更改PDF

16686a964ad51d8460b9a3915108ce62.png
更改PDF

然后打开需要添加标签的PDF>选“从PDF取书签”>“开始”,成功之后生成两个文件(FreePic2Pdf.itf 和FreePic2Pdf_bkmk.txt

99d55575e43e4f3f68a32a5f467e0b9e.png
取书签

v2-4ee78cb7bef64a2a29908c9e6f093523_b.jpg
操作成功

325bbf86f9d3e11579c3ba84f13591fb.png
生成的文件

打开 FreePic2Pdf_bkmk.txt,将刚才PdgCntEditor里的目录粘贴进来,然后保存

63c5958a28154268025f52301d0d19b0.png
粘贴到FreePic2Pdf_bkmk.txt,保存

最后,选择“往PDF文件挂书签(1)”,“编辑接口文件(2)

f659430c634b17545fbbd6eb0b833a3d.png
挂书签

编辑接口文件

Basepage 基准页,就是你正文第一页在PDF中实际的页面数

f60e87111ab884f518ee7f63a7aa8476.png
把BasePage改为你的目录的开始页就行了,然后保存

最后,再点一下开始就完成了。

最后效果如下

3ad7cb5970d1d9a329cb279a993523a6.png
最后实际效果

以上,希望对你有帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用Apache POI库来读取、添加、删除Word文档中的书签。下面是一个简单的示例代码,用于读取文档中的书签: ```java import java.io.FileInputStream; import java.io.IOException; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRun; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRun; public class ReadBookmarks { public static void main(String[] args) { try { FileInputStream fis = new FileInputStream("sample.docx"); XWPFDocument document = new XWPFDocument(fis); // Get all paragraphs in the document List<XWPFParagraph> paragraphs = document.getParagraphs(); // Loop through all paragraphs for (XWPFParagraph paragraph : paragraphs) { // Get all runs in the paragraph List<XWPFRun> runs = paragraph.getRuns(); // Loop through all runs for (XWPFRun run : runs) { // Check if the run contains a bookmark if (run.getCTR().getBookmarkStartList() != null) { // Loop through all bookmarks in the run for (CTBookmark bookmark : run.getCTR().getBookmarkStartList()) { // Print the name of the bookmark System.out.println("Bookmark: " + bookmark.getName()); } } } } // Close the document document.close(); fis.close(); } catch (IOException | InvalidFormatException ex) { ex.printStackTrace(); } } } ``` 这个代码将打开名为“sample.docx”的Word文档,并遍历文档中的所有段落和运行。如果运行包含书签,则它将打印书签的名称。 要添加书签,您可以使用以下代码: ```java import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRun; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRun; public class AddBookmark { public static void main(String[] args) { try { FileInputStream fis = new FileInputStream("sample.docx"); XWPFDocument document = new XWPFDocument(fis); // Get the first paragraph in the document XWPFParagraph paragraph = document.getParagraphs().get(0); // Create a new run in the paragraph XWPFRun run = paragraph.createRun(); // Add text to the run run.setText("This is a bookmark"); // Add a bookmark to the run run.getCTR().addNewBookmarkStart().setName("bookmark1"); run.getCTR().addNewBookmarkEnd(); // Save the document FileOutputStream fos = new FileOutputStream("sample.docx"); document.write(fos); // Close the document document.close(); fis.close(); fos.close(); } catch (IOException | InvalidFormatException ex) { ex.printStackTrace(); } } } ``` 这个代码将在文档的第一个段落中创建一个新的运行,并将一个名为“bookmark1”的书签添加到该运行中。 要删除书签,您可以使用以下代码: ```java import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRun; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRun; public class DeleteBookmark { public static void main(String[] args) { try { FileInputStream fis = new FileInputStream("sample.docx"); XWPFDocument document = new XWPFDocument(fis); // Get the first paragraph in the document XWPFParagraph paragraph = document.getParagraphs().get(0); // Loop through all runs in the paragraph for (XWPFRun run : paragraph.getRuns()) { // Check if the run contains a bookmark if (run.getCTR().getBookmarkStartList() != null) { // Loop through all bookmarks in the run for (CTBookmark bookmark : run.getCTR().getBookmarkStartList()) { // Check if the bookmark has the name "bookmark1" if (bookmark.getName().equals("bookmark1")) { // Remove the bookmark from the run run.getCTR().removeBookmark(bookmark); } } } } // Save the document FileOutputStream fos = new FileOutputStream("sample.docx"); document.write(fos); // Close the document document.close(); fis.close(); fos.close(); } catch (IOException | InvalidFormatException ex) { ex.printStackTrace(); } } } ``` 这个代码将遍历文档的第一个段落中的所有运行,并删除名称为“bookmark1”的书签

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值