Adobe Acrobat Reader选项卡保存和自动加载 [英] Adobe Acrobat Reader Tabs Saving And Autoloading

查看:323
本文介绍了Adobe Acrobat Reader选项卡保存和自动加载的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我为Acrobat Reader创建了Javascript,允许您保存当前打开的标签。它添加了菜单项:保存选项卡,加载选项卡和切换自动加载。它保存标签和页码,并恢复它们。

I've created Javascript for Acrobat Reader which allows you to save the currently open tabs. It adds the menu items: "Save tabs", "Load tabs", and "Toggle auto load". It saves tabs and page numbers, and restores them as well.

这对Linux来说特别有用,因为Linux的pdf阅读器不多。但是,我无法弄清楚如何捕获打开或关闭文档事件,或者设置一些计时器事件以自动存储当前的选项卡列表。

It's especially helpful for Linux, where there aren't many pdf readers available. However, I haven't been able to figure out how to catch open or close document events, or to set some timer event to automatically store current list of tabs.

以下是Adobe Acrobat的原始API参考

/*
   Here is the script, put it in $HOME/.adobe/Acrobat/9.0/JavaScripts (or in 
   the equivalent program files folder under Windows,) and it will automatically
   be loaded. 

   When you need to save current state, choose menu "view -> Save Tabs", to restore 
   recently saved tabs choose "view -> Load Tabs". 
*/

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();
}


推荐答案

感谢您的精彩开始实现这个明显的功能遗漏。 Autohotkey脚本将完成您正在寻找的内容。我在下面创建了一个会在关闭Acrobat时自动保存选项卡布局。

Thanks for the fantastic start to implementing this glaring feature omission from a mature product. An Autohotkey script will accomplish what you're looking for. I've created one below that will automatically save the tab layout when you close Acrobat.

此脚本适用于最新版本的Acrobat Pro DC。在此版本中,脚本菜单选项显示在视图菜单的底部。如果您的版本不同,则必须修改此脚本;如果您的Acrobat版本将自定义Javascript菜单选项放在其他地方,请在评论中报告。

This script works with the latest version of Acrobat Pro DC. In this version, the script menu options appear at the bottom of the "view" menu. If your version differs, you'll have to modify this script; please report in the comments if your Acrobat version puts the custom Javascript menu options elsewhere.

if WinActive("ahk_class #32770") & WinActive("Adobe Acrobat", "Do you want to close all tabs or the current tab") {
    Send, !c
    WinWaitActive, ahk_class AcrobatSDIWindow
    Send, !v{Up 3}{Enter}
    WinWaitActive, Warning: JavaScript, Tabs Saved
    Send, {Space}
    WinMenuSelectItem, ahk_class AcrobatSDIWindow, , View, Save Tabs
    Send, ^q
}

这篇关于Adobe Acrobat Reader选项卡保存和自动加载的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆