2012-10-02 8 views
14

Acrobat Reader用のJavaスクリプトを作成しました。現在開いているタブを保存し、メニュー項目を追加します:「タブを保存」、「タブを読み込む」、「自動読み込みを切り替えます」それはタブとページ番号を保存し、よく復元します。 Linuxの場合は、特に読者にはあまり役に立ちません。しかし、私はそれが私が望むように仕上げることはできません。私はどのようにオープン/クローズドキュメントのイベントをキャッチする方法や、現在のタブのリストを自動的に保存するためのタイマーイベントを見つけられませんでした。Adob​​e Acrobat Readerのタブ保存と自動読み込み

スクリプトは$ HOME/.adobe/Acrobat/9.0/JavaScriptsに置いてください。自動的に読み込まれます。現在の状態を保存する必要がある場合は、メニュー "view - > Save Tabs"を選択し、最近保存したタブを復元するには、 "view - > Load Tabs"を選択します。

ここには、Adobe ReaderのオリジナルのAPIリファレンスがあります。 http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/js_api_reference.pdf

/* 
save tabs is a java script for Acrobat Reader 
on Linux put it usually in ~/.adobe/Acrobat/9.0/JavaScripts 
*/ 
var delim = '|'; 
var parentMenu = "View"; 

/* 
Loading Saved Tabs 
*/ 
function LoadTabs() { 

    if (global.tabs_opened == null) { 
    return; 
    } 

    var flat = global.tabs_opened.split(delim); 
    for (i = 0; i < flat.length; i += 2) { 
    try { 
     app.openDoc(flat[i]); 
     app.execMenuItem("FirstPage"); 
     for (ii = 0; ii < flat[i + 1]; ++ii) { 
     app.execMenuItem("NextPage"); 
     } 
    } catch (ee) { 
     app.alert("Error while opening the requested document.\n" + flat[i], 3); 
    } 
    } 
} 

/* 
Function with trusted section returning opened documents 
*/ 
trustedActiveDocs = app.trustedFunction(function() { 
    app.beginPriv(); 
    var d = app.activeDocs; 
    app.endPriv(); 
    return d; 
}) 

/* 
Saving Tabs that are opened 
*/ 
function SaveTabs() { 
    var d = trustedActiveDocs(); 
    var tabs = ''; 

    for (var i = 0; i < d.length; i++) { 
    if (i > 0) 
     tabs += delim; 
    // app.alert(d[i].path+"------"+d[i].pageNum,3); 
    tabs += d[i].path; 
    tabs += delim; 
    tabs += d[i].pageNum; 
    } 
    global.tabs_opened = tabs; 
    global.setPersistent("tabs_opened", true); 
    app.alert("Tabs Saved", 3); 

} 
/* 
Toggle auto load tabs 
automatically loading tabs when reader starts 
*/ 
function ToggleAuto() { 
    if (global.tabs_auto == 0 || global.tabs_auto == null) { 
    global.tabs_auto = 1; 
    global.setPersistent("tabs_auto", true); 
    app.alert("Tabs auto loading enabled", 3); 
    } else { 
    global.tabs_auto = 0; 
    global.setPersistent("tabs_auto", true); 
    app.alert("Tabs auto loading disabled", 3); 
    } 
} 


app.addMenuItem({ 
    cName: "-", 
    cParent: parentMenu, 
    cExec: "void(0);" 
}); 

app.addMenuItem({ 
    cName: "&Save Tabs", 
    cParent: parentMenu, 
    cExec: "SaveTabs();" 
}); 

app.addMenuItem({ 
    cName: "&Load Tabs", 
    cParent: parentMenu, 
    cExec: "LoadTabs();" 
}); 

app.addMenuItem({ 
    cName: "Toggle auto load", 
    cParent: parentMenu, 
    cExec: "ToggleAuto();" 
}); 

if (global.tabs_auto == 1) { 
    LoadTabs(); 
} 
+0

これは非常に便利です! [このページ](http://www.pdfscripting.com/public/Installing_Automation_Tools.cfm)は、インストールの手助けをしてくれました。 –

+0

これは本当に便利です!!!! –

答えて

0

私は、異なるセッションを作成して読み込むシステムの基本としてスクリプトを使用しましたが、常に同じではありません。それは私のGitHubにあります:https://github.com/JoseCM/PDFSessionsです。希望は問題ありません...

関連する問題