pdf加入书签

给PDF添加书签目录 给PDF添加书签目录 作为一个强迫症,下载到扫描版PDF后,必须将其电子化,先用Adobe Acrobat将其OCR,然后添加书签。 OCR可以没有,但书签是万万不能没有的,否则那么一大块书翻阅起来绝对是噩梦。 但书常有而书签不常有,之前一直是手动添加书签,到了考完后终于有时间折腾了,可以尝试将添加书签这件事自动化。 首先所用的软件是FreePic2Pdf,这个随便就有地方下载,接下来是操作过程。... 阅读详情

最近经常看一些PDF的电子文档,痛苦的是Adobe Reader竟然没有提供书签的功能,每次看完之后再回到上次看的地方都很麻,到网上一找,还真有人就做了PDF的书签,下载一试效果不错,于是参看了一下Adobe Reader的SDK,修改了一点地方,以更方便的使用,下面是程序的使用方法

1、打开编辑的首选项项

2、确保下面的选项都被选中

3 把下面的代码保存为一个bookmark_page.js文件

// bookmark_page.js, ver. 1.0
// visit: www.pdfhacks.com/bookmark_page/
// edit:cjs 2008-02-17 
// 1 修改为中文标签
// 2 设置书签时可以自动获取当前的书名
// 3 自动获取当前所在的页码与总页数,方便查阅
// 4 实现更多功能可以参看Adobe Reader的SDK


// use this delimiter for serializing our array
var bp_delim= '%#%#';

function SaveData( data ) {
// data is an array of arrays that needs
// to be serialized and stored into a persistent
// global string
var ds= '';
for( ii= 0; ii< data.length; ++ii ) {
    for( jj= 0; jj< 3; ++jj ) {
      if( ii!= 0 || jj!= 0 )
        ds+= bp_delim;
      ds+= data[ii][jj];
    }
}
global.pdf_hacks_js_bookmarks= ds;
global.setPersistent( "pdf_hacks_js_bookmarks", true );
}

function GetData() {
// reverse of SaveData; return an array of arrays
if( global.pdf_hacks_js_bookmarks== null ) {
    return new Array(0);
}

var flat= global.pdf_hacks_js_bookmarks.split( bp_delim );
var data= new Array();
for( ii= 0; ii< flat.length; ) {
    var record= new Array();
    for( jj= 0; jj< 3 && ii< flat.length; ++ii, ++jj ) {
      record.push( flat[ii] );
    }
    if( record.length== 3 ) {
      data.push( record );
    }
}
return data;
}

//Get Current Date
function DateNow(){
   var d, s ;
   d = new Date();
   s = d.getFullYear()+"/";
   s += (d.getMonth() + 1) + "/";
   s += d.getDate() ;
   /*
   s += d.getHours() + ":";
   s += d.getMinutes() + ":";
   s += d.getSeconds() ;
   */
   return(s);
}


function AddBookmark() {
// query the user for a name, and then combine it with
// the current PDF page to create a record; store this record
var thisfilename=this.documentFileName;
thisfilename=thisfilename.substr(0,thisfilename.lastIndexOf("."));
var numPlugInss=this.pageNum+1;
var currentdate=DateNow();
var label= 
    app.response( "书签名称,可以修改以便于记忆:",
                  "书签名称",
                  "《"+thisfilename+"》第 "+numPlugInss+" 页/共 "+this.numPages+" 页 "+currentdate,
                  false );
if( label!= null ) {
    var record= new Array(3);
    record[0]= label;
    record[1]= this.path;
    record[2]= this.pageNum;
    data= GetData();
    data.push( record );
    SaveData( data );
}
}

function ShowBookmarks() {
// show a pop-up menu; this seems to only work when
// a PDF is alreay in the viewer;
var data= GetData();
var items= '';
for( ii= 0; ii< data.length; ++ii ) {
    if( ii!= 0 )
      items+= ', ';
    items+= '"'+ ii+ ': '+ data[ii][0]+ '"';
}
// assemble the command and the execute it with eval()
var command= 'app.popUpMenu( '+ items+ ' );';
var selection= eval( command );
if( selection== null ) {
    return; // exit
}

// the user made a selection; parse out its index and use it
// to access the bookmark record
var index= 0;
// toString() converts the String object to a string literal
// eval() converts the string literal to a number
index= eval( selection.substring( 0, selection.indexOf(':') ).toString() );
if( index< data.length ) {
    try {
      // the document must be 'disclosed' for us to have any access
      // to its properties, so we use these FirstPage NextPage calls
      //
      app.openDoc( data[index][1] );
      app.execMenuItem( "FirstPage" );
      for( ii= 0; ii< data[index][2]; ++ii ) {
        app.execMenuItem( "NextPage" );
      }
    }
    catch( ee ) {
      var response= 
        app.alert("打开书签错误.\n是否删除本书签?", 2, 2,"删除书签");
      if( response== 4 && index< data.length ) {
        data.splice( index, 1 );
        SaveData( data );
      }
    }
}
}

function DropBookmark() {
// modelled after ShowBookmarks()
var data= GetData();
var items= '';
for( ii= 0; ii< data.length; ++ii ) {
    if( ii!= 0 )
      items+= ', ';
    items+= '"'+ ii+ ': '+ data[ii][0]+ '"';
}
var command= 'app.popUpMenu( '+ items+ ' );';
var selection= eval( command );
if( selection== null ) {
    return; // exit
}

var index= 0;
index= eval( selection.substring( 0, selection.indexOf(':') ).toString() );
if( index< data.length ) {
    data.splice( index, 1 );
    SaveData( data );
}
}

function ClearBookmarks() {
if( app.alert("确认要清除所有的书签吗?", 2, 2,"删除书签" )== 4 ) {
    SaveData( new Array(0) );
}
}

app.addMenuItem( {
cName: "-",              // menu divider
cParent: "View",         // append to the View menu
cExec: "void(0);" } );

app.addMenuItem( {
cName: "设置本页为书签(&B)",
cParent: "View",
cExec: "AddBookmark();",
cEnable: "event.rc= (event.target != null);" } );

app.addMenuItem( {
cName: "转到指定书签(&T)",
cParent: "View",
cExec: "ShowBookmarks();",
cEnable: "event.rc= (event.target != null);" } );
//cEnable: "event.rc= true;" } );

app.addMenuItem( {
cName: "删除一个书签(&D)",
cParent: "View",
cExec: "DropBookmark();",
cEnable: "event.rc= (event.target != null);" } );

app.addMenuItem( {
cName: "清除所有书签(&C)",
cParent: "View",
cExec: "ClearBookmarks();",
cEnable: "event.rc= true;" } );

4 将文件拷贝到C:\Program Files\Adobe\Reader 8.0\Reader\Javascripts目录下

5 重新打开Adobe Reader,看看下面的图形,相信不用说任何东西,大家都会用了

\


PDF书签制作 简单的PDF书签制作方法 阅读详情

相关推荐

Adobe Reader中文环境下PDF书签添加完整指南与实战

Adobe Reader作为全球最广泛使用的PDF阅读工具,提供了包括文档浏览、注释、表单填写以及书签管理在内的多项核心功能。在处理长篇PDF文档时,书签(Bookmark)是提升阅读效率和导航便捷性的关键组件。本章将系统介绍Adobe Reader的界面结构、基础操作逻辑,并重点阐述书签在整个PDF使用场景中的定位与作用。通过理解其设计理念与用户交互机制,读者可以建立起对PDF文档结构化管理的基本认知,为后续深入掌握书签创建与自动化技术打下坚实理论基础。

weixin_26805451的博客 1141

Latex生成的PDF中加入书签/Navigation/导航

通过Latex为生成的PDF文件添加目录及书签

u011375991的博客 6019

Camera ITS测试

一、手机端设置: 将 CtsVerifier.apk 安装到设备上, 连接上linux主机。 二、主机端设置: 基础:CTS测试运行环境 然后,主机安装python2.7,及numpy/scipy/matplotlib/opencv 栈和 python 成像库。按照下面的命令依次安装: sudo apt­-get install python-­numpy sudo apt-­g...

wangubuntu的专栏 7785

【Latex学习】在生成pdf中加入书签/目录/提纲

【Latex学习】在生成pdf中加入书签/目录/提纲【Latex学习】在生成pdf中加入书签/目录/提纲生成目录生成pdf书签/目录/提纲 - 方法1生成pdf书签/目录/提纲 - 方法2去掉书签/目录/提纲 【Latex学习】在生成pdf中加入书签/目录/提纲 生成目录 在改Latex模板的时候发现了很多种生成pdf书签/目录/提纲的方法,这里稍微做一个整理。 假设Latex中已经生成多级标题,...

锥栗的博客 1万+

QTableView实现表格加载百万条数据

本文介绍用QTableView实现加载100万条数据显示到表格。 1.创建工程 用Qt Creator创建Qt Widgets Application项目,基类选择QWidget,创建好了,如图: 2.添加QTableView控件 在widget.ui中添加QTableView控件,和QPushButton,采用栅格布局,如图: 3.添加函数 头文件 QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACE class Wid

丁爸的博客 8272

关于发那科机器人抓手及物料搬运阀配置

4:确保抓手阀岛和输入模块配网连接正常,MENU—SETUP—MH Valves—Details,详细界面进入到左上图所示,根据每组阀分配夹钳数量并应用。3:设置搬运有效,抓手是否带点焊可以自行选择,要设置应用选择,物料搬用工具数量,工具上阀岛的数量,夹钳存在数量,工具存在数量,以及真空吸盘,冷启动。​2:MENU—应用选择,将搬运置为有效,剩余其他项根据机器人实际用途进行选择。5:设置夹钳数量,检查打开夹钳,检查闭合夹钳,延迟时间要给选择配置应用。

dxs93的博客 4776

pdf从结构新建书签_给PDF文件创建书签,实现快速导航

当文档中的页码比较多的情况下,使用目录进行导航是一个很好用的方法,为文档内容制作目录,方便快速查找目标内容。除了内容的快速导航,书签还能指明不同书签的层级关系,展现文档的结构。图1:书签的功能一、 创建书签首先,pdfFactory的书签功能是针对页面使用的,因此,需要先选中目标页面,然后再右击目标页面,在其快捷菜单中选择“将此页加入书签”,来完成书签的创建。图2:将页面加入书签如图3所示,书签成...

weixin_35545563的博客 1007

【Linux】Windows11 安装 WSL2 并运行 Ubuntu 22.04 详细操作步骤

Windows 11 安装 WSL2 和 Ubuntu 22.04 指南 本文详细介绍在 Windows 11 上安装 WSL2 和 Ubuntu 22.04 的完整步骤,包括: WSL2 与 VirtualBox 的性能对比优势 系统版本检查与升级方法 两种安装方式(一键安装和手动安装) Ubuntu 22.04 的安装与配置 存储位置管理及迁移技巧 常用 WSL2 命令速查表 文章还提供了性能优化建议和常见问题解决方案,适合开发者和 Linux 爱好者快速搭建高效的开发环境。

No8g攻城狮的博客 2万+

为pdf批量建立书签目录

为pdf批量建立书签目录 有些时候我们下载了一个pdf的书籍或者文档,但是没有书签,虽然可以看,但是总觉得缺少灵魂。但是如果一章一章的添加,那有过于麻烦,所以本文通过利用已有的目录 来创建一个pdf的书签,方便跳转。 获取目录 获取的方式有很多种,可以在pdf里面直接拷贝,因为很多文档都是有目录的,如果pdf里面是图片样式的目录,那么可以通过adobe的ocr或者其他ocr进行文字识别。 如果pdf里面没有目录,也可以去一些卖书的网站去查看一下,比如京东、当当、亚马逊等。 你得到的目录正常应该如下: 第 1

CoderWangSon 1197

基于聚类特征工程的水果销量预测:聚类算法对比与多模型评估

水果销量预测研究:聚类分群与多模型对比 摘要 本研究提出了一种融合聚类分析与机器学习的水果销量预测方法。基于包含12个维度的销售数据集,首先采用K-Means、BIRCH和DBSCAN三种聚类算法对水果品类进行分群,通过轮廓系数等指标评估显示BIRCH算法表现最优(0.387)。随后针对不同群组构建差异化特征工程,并比较XGBoost、LightGBM和LSTM三种预测模型性能。实验结果表明:基于聚类特征工程的LightGBM模型预测效果最佳(RMSE=2.34,R²=0.87).

huanghm88的专栏 137

嵌入式编程模型 | 原型模式

本文介绍了原型模式在嵌入式传感器网络中的应用。原型模式通过复制现有对象创建新实例,避免了重复初始化开销,适用于设备配置克隆、状态复制等场景。文章以传感器网络为例,展示了原型模式的结构(抽象原型类、具体原型类、客户端)和实现方式,通过C语言代码演示了温度/湿度传感器的克隆过程。该模式能有效提升嵌入式系统资源复用效率,实现快速部署相似配置的传感器节点,同时保持内存优化和配置灵活性。

嵌入式大杂烩 147

markdown导出PDF,PDF生成目录

8、到此为止,PDF加入有缩进的目录完成,并且点击目录可以正常跳转到对应的章节。选择【转换书签】,缩进层级设置,根据书签的格式选择对应的缩进层级。3、打开PDF Guru Anki软件中的【PDF书签】-【识别书签】点击确定后PDF生成了书签,如下所示,但是书签没有按照层次显示。选择【提取书签】,输入选择上一步已经生成的目录版的PDF。7、将已经缩进的书签写入到原始的PDF中,如下所示。6、将上面没有层次的书签转换有层次的书签。输入选择上一步提取的.txt书签。4、导出PDF的中的书签目录。

码农从0到1 1275

YOLOv13改进策略【多YAML融合】| HWD + DSC3k2_PConv + Detect_MBConv

本文记录的是利用HWD + DSC3k2_PConv + Detect_MBConv改进YOLOv13,分别涉及骨干、颈部和检测头部分的改进。一方面按照此配置,其工作量及创新程度能够满足论文发表的需求,另一方面是一些难以融合多个YAML的举例,以帮助大家理解如何将多个YAML整合到一个YAML中。小波下采样:一个简单但有效的语义分割下采样模块。块由两个主要块组成:无损特征编码块和特征表示学习块。HWD模块与其他下采样模块对比:保留信息能力:传统的下采样方法(如最大池化、平均池化和步幅卷积等)会导致信息丢失,

Limiiiing的博客 496

Latex beamer书签乱码解决方法

在使用Latex做胶片时,使用pdflatex编译后,出现生成的PDF文件书签乱码的情况,百度后找到解决方法如下: windows 7下找到beamer.cls文件,定位到 \PassOptionsToPackage{bookmarks=true,% bookmarkso...

weixin_33894640的博客 503

AUTOSAR从入门到精通-汽车电子电气架构(EEA)(二)

需求的传递并非完全是瀑布式的单向传递,而是双向的,只有被下游接受了的需求才是有效的需求,而且,下游是可以反向对上游提出需求的。当街区的设计完成之后,接下来要做的就是每栋建筑的详细设计,建筑的设计者发布的图纸中规定了房屋的主要结构、所在位置与周边环境的相互关系,以及屋中各种组件的位置与相互之间结合的关系,比如砖混结构、房屋的具体位置和朝向、卧室与客厅的相对位置与尺寸、马桶在卫生间中的位置等,还会对各种建筑材料的选取原则给出具体的标准,比如水泥的标号,钢筋的型号,各种电线的等级要求等等。

getusushu的博客 373

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

无广告的pdf阅读器_推荐一款手机PDF阅读器、编辑器-xodo docs安卓版

手机PDF阅读器、编辑器 - Xodo PDF Readerxodo docs安卓系统是一款非常好用的pdf阅读和编辑app,支持在手机上添加和打开pdf格式的文件,支持进行注释和编辑,还可以进行格式的转换,喜爱的朋友赶紧关注“办公黑科技砖家”获取吧。获取方式在最下方!xodo pdf reader特色01.PDF阅读器在PDF页面中加入书签以便查找 在较暗环境中夜间模式能给您提供前所未有的阅读体...

weixin_39574140的博客 1939

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

在reportlab中如何把TableOfContents() 生成的目录添加到MyDocTemplate生成文档的书签

在 ReportLab 中,可以使用 TableOfContents 类来生成目录。要将目录添加到文档的书签,需要在 MyDocTemplate 类中重写 beforeFlowable 方法,并在其中调用 pdf.bookmarkPage 方法将目录页添加到书签。 以下是一个简单的例子: from reportlab.lib import colors from reportlab.lib.pag...

weixin_42578963的博客 599

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

使用 pypdf 给 PDF 添加目录书签

【代码】使用 pypdf 给 PDF 添加目录书签。

qq_1070971363的博客 946

为pdf添加书签

 第一步:建立一个新的txt文档,将如下代码全部复制进去!!!!// bookmark_page.js, ver. 1.0// visit: www.pdfhacks.com/bookmark_page/// edit:cjs 2008-02-17// 1 修改为中文标签// 2 设置书签时可以自动获取当前的书名// 3 自动获取当前所在的页码与总页数,方便查阅// 4 实现更多功能可以参看A

xuanziY的专栏 4941

【译】在Asp.Net中操作PDF – iTextSharp - 使用链接和书签

     用户和PDF文档的交互可以通过锚(链接)和书签进行,接着我前面iTextSharp的系列文章,本篇文章主要讲通过iTextSharp创建的PDF中链接和书签的基础知识,你或许想复习一下之前的文章,如果你还没有阅读过之前的文章,那么:      在ASP.NET中创建PDF-iTextSharp起步      在Asp.Net中操作PDF - iTextSharp - 使用字体   ...

weixin_34268753的博客 202

点五PDF文件批量合并加书签软件,支持子目录,文件名转书签

本文介绍了一款用易语言开发的PDF合并工具,能快速合并包含子文件夹的数百个PDF文件。该工具特点包括:1分钟完成合并、自动以文件夹和文件名生成书签、保留原始目录结构和文件顺序。使用时需注意首个文件必须是PDF。软件界面简洁,操作方便,火绒杀毒软件不会报毒。作者提供了演示文件夹和免币下载链接,但暂未实现书签转目录和文件列表生成功能。该工具特别适合需要批量处理PDF文件的办公场景。

zlbqjx1的博客 178

在文档阅读器上为 PDF 文档生成多级目录

文章目录1. 博客背景2. 百度经验 1. 博客背景 最近需要阅读几个较大的 PDF 文档,恰巧制作者没有添加书签,也就是说使用阅读器打开后左侧没有目录展示,着实不方便,于是试着百度了下,还真能生成标签目录,瞬间感觉好轻松有木有? 2. 百度经验 下面介绍一种在 PDF 文档中添加多级书签或多级目录的方法。我们以 WPS 文档进行示例操作,其他阅读器类似。 打开一个没有多级书签或多级目录的 PDF 文档。左侧选择书签列表,会看到下图红框中的按钮。 加号是“将当前视图保存为书签”。 减号是“删除当前书签

一线大码 2259

一键生成PDF文档的书签目录

起因 很多在网上找的pdf格式的电子书都没有书签,这给阅读带来了很多障碍。而有书签目录的PDF文档阅读起来既方便下次阅读,也方便记忆。最近在桌手考PMP认证考试的事情,在网上下载的PDF都是没有书签目的,阅读起来集齐别扭。而身为程序员坚信有一键生成书剑目录的方法,坚决不一个个手动添加。所以就找到了方法,亲测有效已经PMP第六版的书剑目录 有图有真相 通过软件设置批量生成后的效果如下 Fre...

u010391342的博客 1万+

【亲测免费】 高效管理PDF书签:PDF批量添加书签工具推荐

高效管理PDF书签:PDF批量添加书签工具推荐 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在日常工作和学习中,我们经常需要处理大量的PDF文件,尤其是为这些文件添加书签以便于快速导航和查找内容。然而,手动为每个PDF文件添加书签不仅耗时耗力,还容易出错。为了解决这一痛点,我们推荐一款强大的PDF批量添加书签工具——FreePic2PDF 和 PdgCntEdito...

gitblog_06582的博客 1774

pdf书签目录一键生成,再也不怕找不到了

最近在看一个pdf,很长很长,1000多页。这种时候没有导航跳转是很痛苦的。所幸,这个pdf带了导航。但是,带的是一个错误的导航。。。更加痛苦。 经过一整圈的搜索,终于找到了一款神器!pdf补丁丁!功能强大,还免费! 简介 先看界面: 看界面,其貌不扬。但是朴实中,带着一丝坚毅。。。言归正传,先来看一下都有哪些功能: 修改PDF信息:删除自动打开网页等动作,去除复制及打印限制 贴心PDF书签编...

简单快乐 1万+
上一篇: B/S与C/S的区别
下一篇: 获取进程和线程id函数简介
LuckyJiang.2021
博客等级 码龄15年 217粉丝 199原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LuckyJiang.2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值