Bookmark脚本文件.doc_第1页
Bookmark脚本文件.doc_第2页
Bookmark脚本文件.doc_第3页
Bookmark脚本文件.doc_第4页
Bookmark脚本文件.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

用Acrobat自动生成pdf目录目前网上流传的“在Acrobat中利用Javascript根据目录一键生成带页码的书签”的方法会在Acrobat的“工具”菜单增加“从附件添加书签”选项,然而在Acrobat XI中已经没有这个菜单(如下图)。为此,Acrobat XI用户需要在原有方法基础上进行修改。图1下面是具体步骤:1.把目录复制粘贴到一个文本文件menu.txt中,确保所有的分隔符是半角的空格(正则表达式为s),并保存为UTF-8的编码(图2,图3)。图2图32.在Acrobat把menu.txt添加到附件里(图4)并保存PDF文件。图43.把Bookmark.js文件解压出来复制到Acrobat安装目录下的JavaScript文件夹里面,默认是AdobeAcrobat 11.0AcrobatJavascriptsBookmark.js文件内容如下(请将代码粘贴到文本编辑器例如记事本、NotePad+中,并保存为Bookmark.js):app.addMenuItem( cName: Add bookmarks from attach, cParent: Edit, cExec: bookm();, cEnable: event.rc= (event.target != null); );var Name_Bookmark;var Page_Bookmark;function bookm() var StartNum = app.response( cQuestion: Please enter the real page number of Page 1!, cTitle: Enter the real page number of the first page, cDefault: 1, cLabel: Enter: ); if (StartNum!=null) var myThis=event.target; var attName=myThis.dataO; var oFile = myThis.getDataObjectContents(attName); var arrFile = util.stringFromStream(oFile, utf-8); var tArr=arrFile.split(n); myThis.bookmarkRoot.remove(); myThis.bookmarkRoot.createChild(Contents); var fSpc; var lSpc; var tCht; var oDot; var Num_Dot; var MenuBookmark=myThis.bookmarkRoot.children0;/目录 var ChaptersBookmark; var SectionsBookmark; var SubSectionsBkm; var SubSectionsBkm1; var i; var a; var b;/首空格后的字符 for (i=0;i2)/空行的length=1,设置为2即不添加空行 fSpc=a.search(/s/);/ 首空格位置 tCht=a.slice(0,fSpc);/首空格前的字符 oDot=tCht.match(/./g);/匹配.符号 Num_Dot=(oDot=null? 0:oDot.length); lSpc=a.lastIndexOf(a.charAt(fSpc);/末空格的位置 b=Number(a.slice(lSpc); Page_Bookmark=(isNaN(b)? 0:b-2+Number(StartNum);/书签指向的页码 Name_Bookmark=(isNaN(b)? a:a.slice(0,lSpc);/书签的名字 switch (Num_Dot) case 0: ChaptersBookmark=CreateSubBkm(MenuBookmark); break; case 1: SectionsBookmark=CreateSubBkm(ChaptersBookmark); break; case 2: SubSectionsBkm=CreateSubBkm(SectionsBookmark); break; case 3: SubSectionsBkm1=CreateSubBkm(SubSectionsBkm); break; default: break; function CreateSubBkm(RootBkm)/在RootBkm书签底下创建一个新书签,并返回新书签对象 var RootBkm; var subBookmark; RootBkm.createChild(Name_Bookmark, this.pageNum=+Page_Bookmark+;); RootBkm.insertChild(RootBkm.children0,RootBkm.children.length); subBookmark=RootBkm.childrenRootBkm.children.length-1;/目录中最后一个章节 return subBookmark;4.重新用Acrobat打开刚才保存了附件的PDF文件。选择编辑菜单下的Add bookmarks from attach”选项。图5接下来弹出的这个对话框要讲解一下(图6)图6页码为1的页面就是正文开始的第一页,但一般都不是PDF开始的第一页。如图7所示,页码为1的页面是PDF文件的第14页,这里已修改了页码。图7这样就可以按照目录的页数直接找到要看的页面,就是看实体书一样。因此,对于图7来说,图6中就应该输入14,然后按确定,稍等一下,带连接的书签就自动生成了。图8有的PDF没有页码1的页面,只有页码2或其它,这时需要把推断出的页码1的页数填入图9如上图,页码2的页数是15,则页码1的页数是14,以此类推。注意事项:1.这个脚本只能处理最多4层的书签,如:第一章-1.1-1.1.1-需要处理更多的层数请自己修改脚本。2.如果原始目录没有章节编号,而是采用缩进形式分层,如:Javascript入门1 网页中的Javascript和基本语法15 Javascript语法15可以这样编写menu.txt:Javascript入门 1. 网页中的Javascript和基本语法 15. Javascript语法 15也就是说,第一层目录不带含有句点的前缀,第二层目录带有一个句点的前缀,第三层带有两个句点,以此类推。3.有的PDF正文内可能插有其他的内容,例如发布网站的广告等,这时要把这些页面删掉,以确保正文的页数跟目录是一致的,否则将连接不到正确

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论