2012-10-02 96 views
14

He creado un guión java para Acrobat Reader que permite guardar las pestañas actuales abiertas, agrega elementos de menú: "Guardar pestañas", "Cargar pestañas", "Alternar carga automática". Guarda pestañas y números de página y restaurarlos bien. Es realmente útil especialmente para Linux donde no hay muchos lectores de PDF. Pero no puedo terminarlo de la manera que quiero. No encontré la manera de detectar el evento de abrir/cerrar documento, o algún evento de temporizador para almacenar automáticamente la lista actual de pestañas.Pestañas de Adobe Acrobat Reader Guardar y cargar automáticamente

Aquí está el script, colóquelo en $ HOME/.adobe/Acrobat/9.0/JavaScripts y se cargará automáticamente. Cuando necesite guardar el estado actual, seleccione el menú "ver -> Guardar pestañas", para restaurar pestañas guardadas recientemente elija "ver -> Cargar pestañas".

Aquí está la referencia de API original para adobe reader. 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

Solo quería decir gracias, ¡esto es súper útil! [Esta página] (http://www.pdfscripting.com/public/Installing_Automation_Tools.cfm) me ayudó a instalarla. –

+0

Esto es realmente útil !!!! –

Respuesta

0

Utilicé su script como base para un sistema de creación y carga de diferentes sesiones y no siempre el mismo. Está en mi GitHub: https://github.com/JoseCM/PDFSessions. Espero que no haya ningún problema ...

Cuestiones relacionadas