2012-10-02 2 views
14

열린 탭을 저장할 수있는 Acrobat Reader 용 Java 스크립트를 만들었습니다. "탭 저장", "탭로드", "자동로드 토글"메뉴 항목이 추가되었습니다. 그것은 탭과 페이지 번호를 저장하고 그들을 복원합니다. 특히 Linux의 경우 많은 pdf 독자에게 도움이됩니다. 그러나 나는 내가 원하는 방식으로 그것을 끝낼 수 없다. 나는 열거 나 닫는 문서 이벤트를 잡는 방법이나 현재 탭 목록을 자동으로 저장하는 타이머 이벤트를 찾지 못했습니다.Adobe Acrobat Reader 탭 저장 및 자동로드

여기 스크립트는 $ HOME/.adobe/Acrobat/9.0/JavaScripts에 넣으면 자동으로로드됩니다. 현재 상태를 저장해야 할 때 "보기 -> 탭 저장"메뉴를 선택하여 최근 저장된 탭을 복원하려면 "보기 -> 탭로드"를 선택하십시오.

다음은 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. 희망은 아무 문제가 없습니다 ...

관련 문제