使用Javascript為Adobe Reader X 新增書籤功能
以前使用的Javascript 為Adobe Reader新增書籤功能,在Adobe Reader X中竟然中文選單全是亂碼,下午參考Adobe SDK的文件,修改了下。Adobe SDK 幫助地址:http://livedocs.adobe.com/acrobat_sdk/10/Acrobat10_HTMLHelp
1.解決了選單亂碼問題。
使用cUser成員為選單命名,防止亂碼。
2.優化了書籤跳轉演算法,使開啟書籤沒有延遲。
原程式中使用的是for(page = 0; page < gotogage; ++page) nextPage(); 這樣的機制,使得書籤跳轉速度慢,修改為gotoPage( gotopage);。
3.添加了書籤自動排序功能。
書籤儲存形式為“《檔名》第N...N頁/共N...N頁 yyyy/mm/dd 備註”(其中備註為可選填項)書籤會按照字母順序自動排序,排序優先順序為:檔名>頁面>日期>備註。可以開啟不同檔案。
【使用方法】
1.下載檔案,將Bookmarks.js解壓到Adobe Reader安裝目錄\Reader\Javascripts資料夾下。
2.執行Adobe Reader,選單編輯->首選項->JavaScript->勾選啟用Acrobat JavaScript和啟用選單專案JavaScript執行許可權。
bookmark_page.js
//修改:TOTOP 2011/12/6 //1修改選單中文顯示亂碼 //2優先頁面跳轉的速度 //3書籤自動排序 //http://hi.baidu.com/tlptotop [email protected] //SDK 幫助地址:http://livedocs.adobe.com/acrobat_sdk/10/Acrobat10_HTMLHelp 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= ''; 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 ); } 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, 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); } 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 numLen = this.numPages.toString().length; var numPlugInss=this.pageNum+1; while(numPlugInss.toString().length < numLen) { numPlugInss = "0" + numPlugInss; } var currentdate=DateNow(); var label="《"+thisfilename+"》第 "+numPlugInss+" 頁/共 "+this.numPages+" 頁 " + currentdate; var cResponse = 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 ); } } 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 // if(this.path == data[index][1]) { this.pageNum = data[index][2]; } else { var otherDoc = app.openDoc( data[index][1]); otherDoc.pageNum = data[index][2]; } } 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: "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;" } );
相關推薦
使用Javascript為Adobe Reader X 新增書籤功能
以前使用的Javascript 為Adobe Reader新增書籤功能,在Adobe Reader X中竟然中文選單全是亂碼,下午參考Adobe SDK的文件,修改了下。Adobe SDK 幫助地址:http://livedocs.adobe.com/acrobat_
Adobe Reader 下新增書籤功能
測試版本: 不過之前的版本都能成功的 1.修改一下Adobereader的選項:編輯->首選項->javascript: 啟用javascript 2:在C:\Program Files (x86)\Adobe\Reader 11.0\Reader\Java
在adobe reader中新增書籤
在adobe reader 9.0中,在視圖裡面沒有書籤這一實用功能,這個我們在閱讀的時候帶來了很多的不便之處,下面這個方法就是在adobe的檢視選單裡新增書籤的選項,步驟如
在PDF檔案(Adobe Reader)中新增書籤導航
Adobe Reader中預設中是沒有書籤導航功能的,下次開啟同一PDF文件時,不會恢復到上次關閉的位置,還得重新找。這個方法可以新增一個書籤功能:在當前頁新增後,下次開啟時直接選擇這個標籤頁就可以了。方法:1,下載ht
給Adobe Reader新增書籤功能
上面下載一個javascript指令碼檔案,把這個檔案放到Adobe/Acrobat 7.0/Reader/Javascripts目錄下。如果忘記了Adobe的安裝目錄,可以執行Adobe Reader,然後使用process explorer檢視程序對應的可執行檔案路徑。檔案放好後,重新執行Adobe Re
為pdf閱讀器(adobe reader)新增書籤
不知道為什麼,自己的pdf閱讀器沒有書籤功能,上網找了找,研究了一個,測試還挺好用,現在給寫出來,以備以後使用: 新建一個js: bookmark_page.js var bp_delim= '%#%#'; function SaveData( data ) { //
給Adobe Acrobat Reader新增上書籤功能
pdf格式是眾多電子教程的首選格式,可惜居然不支援書籤的功能,讓人覺得很不方便,在網上找了一下,發現有如下的解決方案,很好。 PDF檔案的官方閱讀程式“Adobe Acrobat Reader”不支援自定義“書籤”功能,就造成當閱讀長篇幅文件時,根本無法通過新增多個書籤的辦
Adobe Reader新增書籤
Adobe Reader還是很強大的,但是本人比較懶,一個PDF文件看了一點之後,可能好幾天不再開啟,再開啟的時候又忘了上次看到哪,還得從頭找,這是Adobe Reader不太方便的地方,找了一圈沒找到書籤,原來得下載,下載地址:bookmark_page.js-1.0.zi
華為Mate 20 X試用:福昕閱讀器PDF轉換功能
目的 帶來 圖片 exce png 方式 轉換成 硬件 上傳 海外發布會不久,華為就專門在國內召開新品發布會,為國人帶來了舉世矚目的華為 Mate 20 系列產品。這次專門使用華為Mate 20 X試用一下福昕閱讀器App的PDF轉換功能,為什麽要測這個呢?因為要用PDF轉
如何使用PDF編輯器為PDF新增書籤
在很多的時候,大家都會使用到PDF檔案,不管是在學習中還是在工作中,都會使用到PDF檔案,那麼,對於PDF檔案的修改,則是需要使用到PDF編輯軟體的,那麼,如何使用PDF編輯器為PDF新增書籤呢,是不是有很多的小夥伴都想知道應該怎麼做呢,那就可以看看下面的
使用JavaScript為H5新增右擊事件
話不多說,直接上程式碼,其中需要注意的一點是為menu新增position: absolute;屬性,這個屬性的意思是選單採用絕對位置,可以保證右擊後選單出現在自己想要的位置,而不受其他元素的影響 <!DOCTYPE html> <html> &
laravel為網站新增支付功能流程(支付寶)
為網站新增支付功能,本部落格以新增支付寶介面為例。 一、建立應用 進入螞蟻金服開放平臺->開發者中心->網頁&移動應用 按需求選擇建立應用 選擇應用功能 然後提交稽核,大部分功能需要簽約後才能使用。等稽核正式通過,該應用就可以正式投入使用。 二、
接入gitment為hexo新增評論功能
title: 接入gitment為hexo新增評論功能 toc: false date: 2018-04-16 10:59:56 categories: methods tags: hexo gitment 註冊一個OAuth application 註冊連結
為Android的WebView新增播放音樂的介面供javascript呼叫
Android的WebView不支援播放音樂,但是隻要給它新增相關介面,就可以從Javascript中呼叫Android類中介面程式來播放音樂了,這對於混合開發是非常需要的。 步驟: 為Android和WebView內的Javascript新增播放音樂的介面: priv
javascript--select標籤的新增刪除功能的使用
在網頁開發中,常常遇見這種問題,給定兩個框,A和B,和幾個圖片按鈕,A中存在幾個操作,點選圖片按鈕,填加至B中,或者從B中移除等,這種效果如何實現,本文加以總結。 幾種效果圖如下: 原始圖: &n
Adobe Reader10新增書籤
將以下程式碼複製到記事本,另存為Bookmark.js檔案.放到安裝目錄 X:\Program Files\Adobe\Reader 10.0\Reader\Javascripts資料夾下(X代表碟符
hexo next主題為部落格新增分享功能
今天心血來潮,決定給部落格新增分享功能,百度上首先是找到了使用shareSDK的分享功能,最後在實踐的過程中發現它新增時步驟比較多,新增完成後效果比較醜(就是一個長條的淺藍色按鈕),而且點選後想要退出分享比較麻煩(它的取消按鈕實在太難找了,它在頁面最下方的位置,
Linux下完美PDF閱讀器(可新增書籤註釋)–wine+Foxit Reader
Linux下完美PDF閱讀器(可新增書籤註釋)–Foxit Reader 作者: Cnfn 日期: 六月 25, 2011發表評論 (2)檢視評論 以前一直在尋找一個 linux 下可新增書籤註釋的 PDF 閱讀器,結果尋找了半年多也一直沒有找到一個完美的閱讀器。曾用過 PDFMOD,但它只可
為PDF批量新增書籤
現在網路這麼發達,相信很多朋友要充電的話,都只看電子書,而鮮有去買紙質書的,一來可以省錢,二來電子書更便於攜帶(相信很多人都經歷過搬家時處理書籍的痛苦,是搬還是賣得猶豫許久)。而在網上下載的電子書籍,通常沒有書籤(比如大家網的電子書),對於一般的書還不要經,沒書籤就湊合看嘍。但對於一些好書,本人總覺得無書籤是
為安卓應用新增手勢密碼功能,遇到的一些問題以及解決方法
公司的APP有個需求為他新增類似於支付寶的手勢密碼驗證功能效果圖如下 首先我們要分析三個問題: 1.手勢密碼的作用是什麼? 2.在什麼時候啟動? 3.啟動之後幹什麼? 1.手勢密碼的作用是什麼? 這裡很容易解答,為了APP二次啟動進入進行驗證