三闪五月 发表于 2022-6-21 22:27

【javascript】利用javascript 将pdf书签转化成目录(带页码)

本帖最后由 三闪五月 于 2022-6-21 22:36 编辑

用adobe acrobat Pro打开PDF文件,在“工具 ”-“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, 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);

三闪五月 发表于 2022-6-22 08:23

平淡最真 发表于 2022-6-21 23:21
统计下标题和页码长度,最后计算下点的个数,把格式对齐

对。包括行距、字号、目录居中等可以再细化。

平淡最真 发表于 2022-6-21 23:21

统计下标题和页码长度,最后计算下点的个数,把格式对齐

jgpy 发表于 2022-6-21 23:40

感谢楼主分享

kanxue2018 发表于 2022-6-22 01:45


感谢楼主分享{:1_921:}

songxp03 发表于 2022-6-22 06:47

原来是有个js api啊

ysjd22 发表于 2022-6-22 06:58

楼主高明啊。

木楚子潺 发表于 2022-6-22 07:42

可以可以:lol

worni 发表于 2022-6-22 09:20

过来 看看

yhzh 发表于 2022-6-22 10:06

感谢分享。。。
页: [1] 2
查看完整版本: 【javascript】利用javascript 将pdf书签转化成目录(带页码)