1. 程式人生 > >為pdf閱讀器(adobe reader)新增書籤

為pdf閱讀器(adobe reader)新增書籤

不知道為什麼,自己的pdf閱讀器沒有書籤功能,上網找了找,研究了一個,測試還挺好用,現在給寫出來,以備以後使用:

新建一個js:  bookmark_page.js

var bp_delim= '%#%#';


function SaveData( data ) 
{
// data is an array of arrays that needs
// to be serialized and stored into a persistent
// global string
var ds= '';
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 );
}


function GetData() {
// 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
function DateNow(){
var d, s ;
d = new Date();
s = d.getFullYear()+"/";
s += (d.getMonth() + 1) + "/";
s += d.getDate() ;
/**//*
   s += d.getHours() + ":";
   s += d.getMinutes() + ":";
   s += d.getSeconds() ;
*/
return(s);
}




function AddBookmark() {
// query the user for a name, and then combine it with
// the current PDF page to create a record; store this record
var thisfilename=this.documentFileName;
thisfilename=thisfilename.substr(0,thisfilename.lastIndexOf("."));
var numPlugInss=this.pageNum+1;
var currentdate=DateNow();
var label= 
   app.response( "書籤名稱,可以修改以便於記憶:",
   "書籤名稱",
   "《"+thisfilename+"》第 "+numPlugInss+" 頁/共 "+this.numPages+" 頁 "+currentdate,
   false );
if( label!= null ) {
   var record= new Array(3);
   record[0]= label;
   record[1]= this.path;
   record[2]= this.pageNum;
   data= GetData();
   data.push( record );
   SaveData( data );
}
}


function ShowBookmarks() {
// 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 FirstPage NextPage calls
    //
    app.openDoc( data[index][1] );
    app.execMenuItem( "FirstPage" );
    for( ii= 0; ii< data[index][2]; ++ii ) {
     app.execMenuItem( "NextPage" );
    }
   }
   catch( ee ) {
    var response= 
     app.alert("開啟書籤錯誤. 是否刪除本書籤?", 2, 2,"刪除書籤");
    if( response== 4 && index< data.length ) {
     data.splice( index, 1 );
     SaveData( data );
    }
   }
}
}


function DropBookmark() {
// 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 );
}
}


function ClearBookmarks() {
if( app.alert("確認要清除所有的書籤嗎?", 2, 2,"刪除書籤" )== 4 ) {
   SaveData( new Array(0) );
}
}


app.addMenuItem( {
cName: "-",              // menu divider
cParent: "View",         // append to the View menu
cExec: "void(0);" } );
    
    app.addMenuItem( {
cName: "設定本頁為書籤(&B)",
cParent: "View",
cExec: "AddBookmark();",
cEnable: "event.rc= (event.target != null);" } );
    
    app.addMenuItem( {
cName: "轉到指定書籤(&T)",
cParent: "View",
cExec: "ShowBookmarks();",
cEnable: "event.rc= (event.target != null);" } );
    //cEnable: "event.rc= true;" } );
    
    app.addMenuItem( {
cName: "刪除一個書籤(&D)",
cParent: "View",
cExec: "DropBookmark();",
cEnable: "event.rc= (event.target != null);" } );
    
    app.addMenuItem( {
cName: "清除所有書籤(&C)",
cParent: "View",
cExec: "ClearBookmarks();",
cEnable: "event.rc= true;" } );

將檔案拷貝到D:\Program Files\Reader 9.0\Reader\Javascripts目錄下

再重新開啟pdf檔案,向下拉一下,再點選"檢視"選項,關於書籤的操作就看見。

相關推薦

pdf閱讀(adobe reader)新增書籤

不知道為什麼,自己的pdf閱讀器沒有書籤功能,上網找了找,研究了一個,測試還挺好用,現在給寫出來,以備以後使用: 新建一個js:  bookmark_page.js var bp_delim= '%#%#'; function SaveData( data )  { //

Adobe Reader新增書籤功能

上面下載一個javascript指令碼檔案,把這個檔案放到Adobe/Acrobat 7.0/Reader/Javascripts目錄下。如果忘記了Adobe的安裝目錄,可以執行Adobe Reader,然後使用process explorer檢視程序對應的可執行檔案路徑。檔案放好後,重新執行Adobe Re

福昕PDF閱讀(Foxit reader)V9.5.0 去廣告增強版

福昕PDF閱讀器(Foxit reader)是小巧強大的PDF文件閱讀器,完全免費。有了它,你無須為僅僅閱讀PDF文件而下載和安裝龐大的Adobe Reader,而且啟動快速,對中文支援非常好。福昕PDF閱讀器 6.1.1.1031 去廣告簡體中文增強破解版由roustar31優化製作。 本版特

pdf閱讀怎麼樣去新增箭頭啊

在工作的時候我們會對一些檔案進行編輯,這也是在工作的時候經常可以碰到的,但是我想大家都不想對一種檔案格式進行編輯吧,那就是—pdf檔案,沒錯每次在工作多的時候遇到就會搞得頭疼,縱然有的會說pdf虐我千百編,我待它如初戀

教你怎麼使用pdf閱讀,怎麼刪除書籤

平時我們都喜歡玩手機,但是其實很多人會發現就算是玩手機玩久了了之後就會覺得沒什麼好玩的,如果我們想要自己變得有趣就要去閱讀,說到閱讀大家可能都有一個習慣,那就是在閱讀的時候喜歡新增書籤,如果我們不想要的話,該怎麼刪除呢?想知道嗎,想就來看看。 小編使用的是安卓輕快PDF閱

Adobe Reader新增書籤

Adobe Reader還是很強大的,但是本人比較懶,一個PDF文件看了一點之後,可能好幾天不再開啟,再開啟的時候又忘了上次看到哪,還得從頭找,這是Adobe Reader不太方便的地方,找了一圈沒找到書籤,原來得下載,下載地址:bookmark_page.js-1.0.zi

Linux下完美PDF閱讀(可新增書籤註釋)–wine+Foxit Reader

Linux下完美PDF閱讀器(可新增書籤註釋)–Foxit Reader 作者: Cnfn 日期: 六月 25, 2011發表評論 (2)檢視評論 以前一直在尋找一個 linux 下可新增書籤註釋的 PDF 閱讀器,結果尋找了半年多也一直沒有找到一個完美的閱讀器。曾用過 PDFMOD,但它只可

js判斷ie和edge是否安裝Adobe Reader PDF閱讀

瀏覽pdf 方便 else pdf location win edge class ber ie瀏覽器和edge瀏覽器,必須用Adobe Reader PDF閱讀器才可以打開pdf文件,其他現代瀏覽器自帶pdf閱讀器,無需安裝。 判斷ie或者edge如果安裝了,就瀏覽pdf

手機pdf閱讀什麽打不開文件

一般來說,我們現在用的手機都是智能的手機,安裝的軟件很少是不能用的,除非與手機的兼容性不強。有人的手機pdf閱讀器下載後打不開文件又是為什麽?可能是沒有正確安裝或者是使用的pdf閱讀器不好,那麽怎麽辦? 輕快PDF閱讀器安卓版占內存小,啟動反應快,支持隨時隨地查看、註釋和保護PDF文件。體積小、啟動速度

ubuntu 安裝 Foxit Reader PDF閱讀

從 http://www.foxitsoftware.com/downloads/ 選擇 “Desktop Linux”, 檔案格式是deb 下載 Foxit Reader。 這時候你就有一個 FoxitReader_1.1.0_i386.deb 這個安裝包。 這時候不要直

pdf閱讀如何給pdf新增圖章

對於經常接觸到pdf檔案的人來說想要編輯pdf檔案相對於沒有怎麼接觸過pdf的要相對簡單一點,因為熟悉pdf檔案的人都知道它是很難進行編輯的,那如果是對pdf檔案新增圖章,我們該怎麼辦呢?其實這簡單,只要你選擇一個可以開啟pdf檔案的pdf閱讀器就可以了,那閱讀器這麼多到底

WPF中查看PDF文件 - 基於開源的MoonPdfPanel (無需安裝任何PDF閱讀)問題匯總

報錯 博客 mil iss 用法 責任 位置 通過 連接 致敬Yang-Fei—有一個簡單的用法示例: http://www.cnblogs.com/yang-fei/p/4885570.html。 寫MoonPdfPanel的哥們關於這個開源軟件的實現介紹

IOS系統怎麽進行下載輕快PDF閱讀

輕快PDF閱讀器 如何在蘋果手機上下載輕快PDF閱讀器,輕快PDF閱讀器是渺小而強大的閱讀器,我們要在IOS端進行下載,該怎麽進行呢? 1.打開APP商城進行搜索“輕快PDF閱讀器”,點擊安裝。 2.安裝完畢後,點擊該APP圖標進入軟件程序。 3.輕快PDF閱讀器會

誰知道電腦版pdf閱讀哪個好?最好不占內存的!

各路大神,本人最近找了一份工作。工作不算輕松不算累,但是最近工作效率有些不高!上司總是發一些我不好打理的文件,花費時間很長!所以本人找了一款軟件叫輕快pdf閱讀器!想請各位分析這麽做對不對? 據我所知輕快PDF閱讀器是一款體積小、啟動速度快、閱讀效果最好的PDF閱讀軟件。不僅內存小還讓用戶能夠準確定位瀏

哪裏的小說閱讀軟件好用?安卓手機pdf閱讀怎麽安裝?

輕快PDF閱讀器有一種人被成為書蟲,為什麽呢?因為他們喜歡看書唄!現在隨隨便便一本書都很貴,就算網上的電子書也是要收費的好吧!有些朋友就自己找資源下載來看,但是這些資源有的格式它打不開怎麽辦呢? 這時候就很需要一款小說閱讀軟件了,問題來了:哪種的軟件好用?怎麽下載安裝呢?接下來小編舉例說明一款軟件:輕快

【輕快PDF閱讀pdf編輯中刪除頁面的功能怎麽操作?

可能是到了暑期,孩子們可能已經悠然的過著暑假生活。然而我們這些上班族的工作任務一下劇增!唉,可能是老了吧。粗心大意的,工作也有出錯的時候了!這麽多錯處下來,居然總結了一些心得體會。 怎麽處理pdf閱讀器中刪除文檔的頁面,下面就讓我來述說吧!輕快PDF閱讀器是一款體積小、啟動速度快、閱讀效果最

PC端如何安裝pdf閱讀?【輕快PDF閱讀

公司新裝了一臺電腦,我居然忘記了去安裝一些便利的軟件,太不對了!尤其是輕快PDF閱讀器,之前工作中它可是幫我了不少的忙! 據我所知輕快PDF閱讀器是一款體積小、啟動速度快、閱讀效果最好的PDF閱讀軟件。不僅內存小還讓用戶能夠準確定位瀏覽目標。 本人是先瀏覽器上搜索關鍵詞:輕快PDF閱讀器,然後本地

安卓手機中pdf閱讀怎麽安裝?各款pdf閱讀哪個好

輕快PDF閱讀器現在的人們基本人手一部手機,還是各種品牌、各種款式的。今天我們就詳細說說安卓系統的手機怎麽去安裝pdf閱讀器?所有pdf閱讀器中哪種最好。 輕快PDF閱讀器是一款體積小、啟動速度快、閱讀效果最好的PDF閱讀軟件。適用於安卓設備,支持隨時隨地查看、註釋和保護PDF文件。其閱讀模式也頗具個性

究竟什麽是pdf閱讀呢?功能最全的pdf閱讀是哪款?

輕快PDF閱讀器聽說pdf閱讀器中輕快的最好用!我也想下載來使用,但是又擔心會花費很多錢,但是最近一位友人推薦,讓我放下擔心,下面就讓我來為大家分享一下輕快pdf閱讀器免費下載的過程。pc端的下載網址:http://www.downxia.com/downinfo/69331.html 輕快PDF閱讀器

戴爾電腦pdf閱讀下載步驟 輕快pdf閱讀破解版

輕快pdf閱讀器在這個飛速發展的城市,感覺每一分每一秒它都在進步,而我們也要跟上它的步驟,學會快節奏的生活方式。輕快pdf閱讀器能讓我們更好的適應工作中的節奏。 所以今天為大家介紹的是比較好用的pdf閱讀器,輕快pdf閱讀器是一款體積小巧功能強大的而且啟動速度快及閱讀效果好被用戶廣泛接受,其搜索功能,更