欢迎来到天天文库
浏览记录
ID:11412621
大小:377.06 KB
页数:7页
时间:2018-07-11
《acrobat xi根据目录一键生成带页码的书签》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、在AcrobatXI中利用Javascript根据目录一键生成带页码的书签目前网上流传的“在Acrobat中利用Javascript根据目录一键生成带页码的书签”的方法会在Acrobat的“工具”菜单增加“从附件添加书签”选项,然而在AcrobatXI中已经没有这个菜单(如下图)。为此,AcrobatXI用户需要在原有方法基础上进行修改。图1下面是具体步骤:1.把目录复制粘贴到一个文本文件menu.txt中,确保所有的分隔符是半角的空格(正则表达式为s),并保存为UTF-8的编码(图2,图3)。图2图32.在Acrobat把menu.txt添加到附件里(图4)并保存PDF
2、文件。图43.把Bookmark.js文件解压出来复制到Acrobat安装目录下的JavaScript文件夹里面,默认是AdobeAcrobat11.0AcrobatJavascriptsBookmark.js文件内容如下(请将代码粘贴到文本编辑器例如记事本、NotePad++中,并保存为Bookmark.js):app.addMenuItem({cName:"Addbookmarksfromattach",cParent:"Edit",cExec:"bookm();",cEnable:"event.rc=(event.target!=null);"});varNam
3、e_Bookmark;varPage_Bookmark;functionbookm(){varStartNum=app.response({cQuestion:"PleaseentertherealpagenumberofPage1!",cTitle:"Entertherealpagenumberofthefirstpage",cDefault:"1",cLabel:"Enter:"});if(StartNum!=null){varmyThis=event.target;varattName=myThis.dataObjects[0].name;varoFile=myThi
4、s.getDataObjectContents(attName);vararrFile=util.stringFromStream(oFile,"utf-8");vartArr=arrFile.split("");myThis.bookmarkRoot.remove();myThis.bookmarkRoot.createChild("Contents");varfSpc;varlSpc;vartCht;varoDot;varNum_Dot;varMenuBookmark=myThis.bookmarkRoot.children[0];//目录varChaptersBo
5、okmark;varSectionsBookmark;varSubSectionsBkm;varSubSectionsBkm1;vari;vara;varb;//首空格后的字符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
6、=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){case0:ChaptersBookmark=CreateSubBkm(MenuBookmark);break;case1:SectionsBookmark=CreateSubBkm(ChaptersBook
7、mark);break;case2:SubSectionsBkm=CreateSubBkm(SectionsBookmark);break;case3:SubSectionsBkm1=CreateSubBkm(SubSectionsBkm);break;default:break;}}}}}functionCreateSubBkm(RootBkm)//在RootBkm书签底下创建一个新书签,并返回新书签对象{varRootBkm;varsubBookmark;RootBkm.createChild(Name_Boo
此文档下载收益归作者所有