经典如何给PDF文件添加书签

更新时间:2023-04-23 03:44:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

最近经常看一些PDF的电子文档,痛苦的是Adobe Reader竟然没有提供书签的功能,每次看完之后再回到上次看的地方都很麻,到网上一找,还真有人就做了PDF的书签,下载一试效果不错,于是参看了一下Adobe Reader的SDK,修改了一点地方,防止了乱码,以更方便的使用,下面是程序的使用方法

1、打开编辑的首选项项

2、确保下面的选项都被选中

3 把下面的代码保存为一个bookmark_page.js文件

varbp_delim= '%#%#';

functionSaveData( data )

{

// data is an array of arrays that needs

// to be serialized and stored into a persistent

// global string

var ds= '';

data.sort();

for( ii= 0; ii<data.length; ++ii )

{

for(jj= 0; jj< 3; ++jj )

{

if( ii!= 0 || jj!= 0 )

ds+= bp_delim;

ds+= data[ii][jj];

}

}

global.pdf_hacks_js_bookmarks= ds;

global.setPersistent( "pdf_hacks_js_bookmarks", true );

}

functionGetData()

{

// reverse of SaveData; return an array of arrays

if(global.pdf_hacks_js_bookmarks== null )

{

return new Array(0);

}

var flat= global.pdf_hacks_js_bookmarks.split( bp_delim );

var data= new Array();

for( ii= 0; ii<flat.length; )

{

var record= new Array();

for(jj= 0; jj< 3 && ii<flat.length; ++ii, ++jj )

{

record.push( flat[ii] );

}

if(record.length== 3 )

{

data.push( record );

}

}

return data;

}

//Get Current Date

functionDateNow()

{

var d, tmp ,s ;

d = new Date();

t = d.getFullYear();

s = t + "/";

t = (d.getMonth() + 1).toString();

if(t.length!=2) t = "0" + t;

s += t + "/";

t = (d.getDate()).toString();

if(t.length!=2) t = "0" + t;

s += t;

return(s);

}

functionAddBookmark()

{

// query the user for a name, and then combine it with

// the current PDF page to create a record; store this record varthisfilename=this.documentFileName;

thisfilename=thisfilename.substr(0,stIndexOf(".")); varnumLen = this.numPages.toString().length;

varnumPlugInss=this.pageNum+1;

while(numPlugInss.toString().length <numLen)

{

numPlugInss = "0" + numPlugInss;

}

varcurrentdate=DateNow();

var label="《"+thisfilename+"》第 "+numPlugInss+" 页/共

"+this.numPages+" 页 " + currentdate;

varcResponse = app.response(

{ cQuestion: label, cTitle: "添加书签", cDefault: "无备注",

cLabel: "备注:"

});

if(cResponse!= null )

{

var record= new Array(3);

record[0]= label + " " + cResponse;

record[1]= this.path;

record[2]= this.pageNum;

data= GetData();

data.push( record );

SaveData( data );

}

}

functionShowBookmarks()

{

// show a pop-up menu; this seems to only work when

// a PDF is alreay in the viewer;

var data= GetData();

var items= '';

for( ii= 0; ii<data.length; ++ii )

{

if( ii!= 0 )

items+= ', ';

items+= '"'+ ii+ ': '+ data[ii][0]+ '"';

}

// assemble the command and the execute it with eval()

var command= 'app.popUpMenu( '+ items+ ' );';

var selection= eval( command );

if( selection== null )

{

return; // exit

}

// the user made a selection; parse out its index and use it // to access the bookmark record

var index= 0;

// toString() converts the String object to a string literal // eval() converts the string literal to a number

index= eval( selection.substring( 0,

selection.indexOf(':') ).toString() );

if( index<data.length )

{

try

{

// the document must be 'disclosed' for us to have any access // to its properties, so we use these FirstPageNextPage calls //

if(this.path == data[index][1]) { } else { } varotherDoc = app.openDoc( data[index][1]); otherDoc.pageNum = data[index][2]; this.pageNum= data[index][2];

}

catch(ee )

{

var response=

app.alert("打开书签错误. 是否删除本书签?", 2, 2,"删除书签"); if( response== 4 && index<data.length )

{

data.splice( index, 1 );

SaveData( data );

}

}

}

}

functionDropBookmark()

{

// modelled after ShowBookmarks()

var data= GetData();

var items= '';

for( ii= 0; ii<data.length; ++ii )

{

if( ii!= 0 )

items+= ', ';

items+= '"'+ ii+ ': '+ data[ii][0]+ '"';

}

var command= 'app.popUpMenu( '+ items+ ' );';

var selection= eval( command );

if( selection== null )

{

return; // exit

}

var index= 0;

index= eval( selection.substring( 0,

selection.indexOf(':') ).toString() );

if( index<data.length )

{

data.splice( index, 1 );

SaveData( data );

}

}

functionClearBookmarks()

{

if( app.alert("确认要清除所有的书签吗,删除后将不可恢复?", 2, 2,"删除书签" )== 4 )

{

SaveData( new Array(0) );

}

}

app.addMenuItem(

{

cName: "-", // menu pider

cParent: "View", // append to the View menu

cExec: "void(0);"

} );

app.addMenuItem(

{

cName: "AddBookmark",

cUser: "设置本页为书签(&B)",

cParent: "View",

cExec: "AddBookmark();",

cEnable: "event.rc= (event.target != null);"

} );

app.addMenuItem(

{

cName: "ShowBookmarks",

cUser: "转到指定书签(&T)",

cParent: "View",

cExec: "ShowBookmarks();",

cEnable: "event.rc= (event.target != null);"

} );

app.addMenuItem(

{

cName: "DropBookmark",

cUser: "删除一个书签(&D)",

cParent: "View",

cExec: "DropBookmark();",

cEnable: "event.rc= (event.target != null);"

} );

app.addMenuItem(

{

cName: "ClearBookmarks",

cUser: "删除所有书签(&C)",

cParent: "View",

cExec: "ClearBookmarks();",

cEnable: "event.rc= true;"

} );

4 将文件拷贝到C:\Program Files (x86)\Adobe\Reader

10.0\Reader\Javascripts目录下

5 重新打开Adobe Reader,看看下面的视图,相信不用说任何东西,大家都会用了

/yarctic/blog/item/4313f2f21e173a16b07ec538

本文来源:https://www.bwwdw.com/article/rtvq.html

Top