为pdf文件自动添加目录.pdf

上传人:wj 文档编号:3430808 上传时间:2023-05-05 格式:PDF 页数:7 大小:387.29KB
下载 相关 举报
为pdf文件自动添加目录.pdf_第1页
第1页 / 共7页
为pdf文件自动添加目录.pdf_第2页
第2页 / 共7页
为pdf文件自动添加目录.pdf_第3页
第3页 / 共7页
为pdf文件自动添加目录.pdf_第4页
第4页 / 共7页
为pdf文件自动添加目录.pdf_第5页
第5页 / 共7页
为pdf文件自动添加目录.pdf_第6页
第6页 / 共7页
为pdf文件自动添加目录.pdf_第7页
第7页 / 共7页
亲,该文档总共7页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

为pdf文件自动添加目录.pdf

《为pdf文件自动添加目录.pdf》由会员分享,可在线阅读,更多相关《为pdf文件自动添加目录.pdf(7页珍藏版)》请在冰点文库上搜索。

为pdf文件自动添加目录.pdf

用用AcrobatAcrobat自动生成自动生成pdfpdf目录目录目前网上流传的“在Acrobat中利用Javascript根据目录一键生成带页码的书签”的方法会在Acrobat的“工具”菜单增加“从附件添加书签”选项,然而在AcrobatXI中已经没有这个菜单(如下图)。

为此,AcrobatXI用户需要在原有方法基础上进行修改。

图1下面是具体步骤:

1.把目录复制粘贴到一个文本文件menu.txt中,确保所有的分隔符是半角的空格(正则表达式为s),并保存为UTF-8的编码(图2,图3)。

图2图32.在Acrobat把menu.txt添加到附件里(图4)并保存PDF文件。

图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););varName_Bookmark;varPage_Bookmark;functionbookm()varStartNum=app.response(cQuestion:

PleaseentertherealpagenumberofPage1!

cTitle:

Entertherealpagenumberofthefirstpage,cDefault:

1,cLabel:

Enter:

);if(StartNum!

=null)varmyThis=event.target;varattName=myThis.dataObjects0.name;varoFile=myThis.getDataObjectContents(attName);vararrFile=util.stringFromStream(oFile,utf-8);vartArr=arrFile.split(n);myThis.bookmarkRoot.remove();myThis.bookmarkRoot.createChild(Contents);varfSpc;varlSpc;vartCht;varoDot;varNum_Dot;varMenuBookmark=myThis.bookmarkRoot.children0;/目录varChaptersBookmark;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=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(ChaptersBookmark);break;case2:

SubSectionsBkm=CreateSubBkm(SectionsBookmark);break;case3:

SubSectionsBkm1=CreateSubBkm(SubSectionsBkm);break;default:

break;functionCreateSubBkm(RootBkm)/在RootBkm书签底下创建一个新书签,并返回新书签对象varRootBkm;varsubBookmark;RootBkm.createChild(Name_Bookmark,this.pageNum=+Page_Bookmark+;);RootBkm.insertChild(RootBkm.children0,RootBkm.children.length);subBookmark=RootBkm.childrenRootBkm.children.length-1;/目录中最后一个章节returnsubBookmark;4.重新用Acrobat打开刚才保存了附件的PDF文件。

选择编辑菜单下的Addbookmarksfromattach”选项。

图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-1.1.1.1需要处理更多的层数请自己修改脚本。

2.如果原始目录没有章节编号,而是采用缩进形式分层,如:

Javascript入门1网页中的Javascript和基本语法15Javascript语法15可以这样编写menu.txt:

Javascript入门1.网页中的Javascript和基本语法15.Javascript语法15也就是说,第一层目录不带含有句点的前缀,第二层目录带有一个句点的前缀,第三层带有两个句点,以此类推。

3.有的PDF正文内可能插有其他的内容,例如发布网站的广告等,这时要把这些页面删掉,以确保正文的页数跟目录是一致的,否则将连接不到正确的页面。

4.脚本也能处理没有页数的目录,但是需要手动设置书签的目标了5.AcrobatPro的版本要高于9.3,否则不能读取附件内容。

图10本文在网络文章“在Acrobat中利用Javascript根据目录一键生成带页码的书签”基础上进行修改以适应AcrobatXI,在此感谢原作者的辛勤劳动!

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2