使用Acrobat Pro和JavaScript:将PDF转换为带页码目录的神奇操作

随心笔谈9个月前更新 admin
229 00
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

文章摘要

本文介绍了如何在Adobe Acrobat Pro中使用JavaScript脚本将PDF文件中的书签导出为带页码的目录页。具体步骤包括: 1. 安装并打开Adobe Acrobat Pro。 2. 打开需要处理的PDF文件。 3. 在工具菜单下选择“JavaScript”,然后点击“文档级JavaScript”。 4. 在编辑窗口中输入以下代码,用于将书签导出为带有页码的目录页: ``` function PrintBookmarks(bm, nLevel) { if (nLevel != 0) { bmReport.absIndent = bmTab * (nLevel - 1); bm.execute(); bmReport.writeText(bm.name + "..........", (bm.doc.pageNum + 1)); } if (bm.children != null) for (var i = 0; i < bm.children.length; i++) PrintBookmarks(bm.children[i], nLevel + 1); } bmTab = 20; bmReport = new Report(); bmReport.size = 2; bmReport.writeText(this.title); bmReport.writeText(" "); bmReport.size = 1.5; bmReport.writeText("目录"); bmReport.writeText(" "); bmReport.size = 1; PrintBookmarks(this.bookmarkRoot, 0); global.bmRep = bmReport; global.wrtDoc = app.setInterval('...'); ``` 5. 设置必要的参数(如`bmTab`和`bmReport`)并执行脚本,即可生成目录页。

1、首先需要安装adobe acrobat Pro,下载地址:https://pan.baidu.com/s/1PD1sCryujYjjsJRDVqo6yw?pwd=0q99

2、用adobe acrobat Pro打开PDF文件

3、在“工具 ”-“JavaScript”-“文档级 JavaScript”中,添加 JavaScript脚本,可将pdf书签导出为PDF格式带页码的目录页。

function PrintBookmarks(bm, nLevel)
{
if (nLevel != 0) { // don’t print the root
bmReport.absIndent=bmTab*(nLevel-1);
bm.execute();
bmReport.writeText(bm.name+”……….”+(bm.doc.pageNum +1));
}
if (bm.children != null)
for (var i = 0; i < bm.children.length; i++)
PrintBookmarks(bm.children[i], nLevel + 1);
}
bmTab = 20;
bmReport = new Report();
bmReport.size = 2;
bmReport.writeText(this.title);
bmReport.writeText(” “);
bmReport.size = 1.5;
bmReport.writeText(“目录”);
bmReport.writeText(” “);
bmReport.size = 1;
PrintBookmarks(this.bookmarkRoot, 0);
global.bmRep = bmReport; // make global
global.wrtDoc = app.setInterval(
‘try {‘
+’ reportDoc = global.bmRep.open(“Listing of Bookmarks”);’
+’ console.println(“Executed Report.open”);’
+’ app.clearInterval(global.wrtDoc);’
+’ delete global.wrtDoc;’
+’ console.println(“Executed App.clearInterval”);’
+’ reportDoc.info.title = “Bookmark Listings”;’
+’ reportDoc.info.Author = “List Bookmark Sequence”;’
+’} catch (e) {console.println(“Waiting…: ” + e);}’
, 100);

© 版权声明

相关文章