`
teasp
  • 浏览: 61553 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

解决Adobe Reader使用书签出现“出现内部错误”的问题

阅读更多

    把下面的javascript代码保存到Adobe_home\Reader X\Reader\Javascripts\bookmark_page.js, 相信很多人都这么做了,不过设置书签时仍有可能遇到:出现内部错误

// bookmark_page.js, ver. 1.0

// visit: www.pdfhacks.com/bookmark_page/

 

// use this delimiter for serializing our array

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= '';

  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;

}

 

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 label= 

    app.response( "Bookmark Name:",

                  "Bookmark Name",

                  "",

                  false );

  if( label!= null ) {

    var record= new Array(3);

    record[0]= label;

    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

      //

      app.openDoc( data[index][1] );

      app.execMenuItem( "FirstPage" );

      for( ii= 0; ii< data[index][2]; ++ii ) {

        app.execMenuItem( "NextPage" );

      }

    }

    catch( ee ) {

      var response= 

        app.alert("Error trying to open the requested document.\nShould I remove this bookmark?", 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("Are you sure you want to erase all bookmarks?", 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: "Bookmark This Page &5",

cParent: "View",

cExec: "AddBookmark();",

cEnable: "event.rc= (event.target != null);" } );

 

app.addMenuItem( {

cName: "Go To Bookmark &6",

cParent: "View",

cExec: "ShowBookmarks();",

cEnable: "event.rc= (event.target != null);" } );

 

app.addMenuItem( {

cName: "Remove a Bookmark",

cParent: "View",

cExec: "DropBookmark();",

cEnable: "event.rc= (event.target != null);" } );

 

app.addMenuItem( {

cName: "Clear Bookmarks",

cParent: "View",

cExec: "ClearBookmarks();",

cEnable: "event.rc= true;" } );

 

在我的环境下,“出现内部错误”是这样解决的:
点击 编辑->首选项(或者使用快捷键Ctrl+K),在弹出的页面里面选择JavaScript,勾选 启用Acrobat JavaScript,不勾选 JavaScript安全性 下面的两个选项,勾选 出现错误和消息时显示控制台。

1
3
分享到:
评论

相关推荐

    adobe reader 书签 readerbookmark JavaScript 插件

    于是在网上查了一下adobe reader的书签功能,原来用adobe acrobat在制作pdf时是可以加书签,但adobe reader在看pdf时没有书签功能。 在网上搜到一个老外写的JavaScript插件(http://www.pdfhacks.com/bookmark_page/)...

    Adobe reader添加书签功能

    本文将详细介绍如何在Adobe Reader 10.0版本中添加书签功能,以及解决中文菜单乱码的问题。 首先,我们需要创建一个名为`Bookmark.js`的文件,将提供的代码复制到记事本中并保存。这个文件应放置在Adobe Reader的...

    adobe reader 添加书签 (中文)

    1. **打开PDF文档**:首先,你需要使用Adobe Reader打开你想要添加书签的PDF文件。 2. **选择目标页**:找到你希望设置书签的页面。这可能是文档中的一个重要章节或关键信息的位置。 3. **添加书签**:在菜单栏中...

    安装Adobe Reader XI pdf 阅读器时出现错误

    安装Adobe Reader XI pdf 阅读器时出现错误,无法正常安装,提示 检测到已安装一个包含更多产品的安装终止安装或者Adobe 安装完成之前被中断,错误代码:150210

    AdobeReader 书签插件:bookmark_page.js

    Adobe Reader 书签插件:插件是一个JS文件,下载后将.js文件复制到软件安装目录JavaScript文件夹下,参考C:\Program Files (x86)\Adobe\Reader 11.0\Reader\Javascripts\bookmark_page.js

    Adobe Reader添加书签的脚本

    添加这个脚本文件之后能是Adobe Reader 能使用书签功能

    adobe pdf reader添加书签插件

    可以给pdf文件添加书签,方便阅读pdf文件,使用方法:首先打开编辑—首选项,选择左侧javascript,在右侧的启用acrobat javascript前打勾,然后把下载的文件复制到安装目录里的Adobe\Reader 9.0\Reader\Javascripts...

    Adobe reader XI闪退问题解决办法,亲测有效!!!

    解决Adobe reader XI闪退问题

    Adobe Reader 添加书签

    用Adobe Reader 看书好久一直没有发现书签功能在哪,这会发现了给大家共享一下。 把下载下的的文件放到C:\Program Files\Adobe\Reader 9.0\Reader\Javascripts里,重新启动Adobe Reader即可在视图里找到此功能。

    Adobe Reader 9.3添加书签的方法

    Adobe Reader是一款广泛使用的PDF文档阅读器,由Adobe公司开发,其9.3版本在功能上提供了许多方便用户阅读和管理PDF文件的工具,其中之一就是书签功能。书签在PDF阅读中扮演着导航的角色,帮助用户快速跳转到文档中...

    ADOBE READER 9 书签插件

    这个是脚本文件,希望对大家有所帮助;这个脚本文件也是从网络上复制下来的;

    Adobe Reader书签

    Adobe Reader是一款全球广泛使用的PDF(Portable Document Format)阅读器,由Adobe公司开发。这款软件不仅提供了查看、打印和导航PDF文档的基本功能,还有一系列高级特性,如书签功能,正是我们今天要讨论的重点。 ...

    给Adobe Reader XI添加中文书签功能

    不少朋友在用Adobe Reader XI看PDF书时都感觉没有书签功能很不方便,因此不少人都改用Foxit了。也有不少人尝试给该软件增加书签功能,但是只能是英文版,改用中文时功能按钮名称就会是乱码。 经过本人不懈努力,...

    adobe reader添加pdf书签功能

    将文件拷贝到adobe安装目录下\Adobe\Reader 10.0\Reader\Javascripts, 重新启动软件,菜单View最下面就是本功能的菜单。

    ADOBE READER DC FontPack 字体库

    FontPack则是Adobe为解决用户在打开包含特殊字体或非标准字体的PDF文档时可能出现的显示问题而提供的解决方案。 Adobe Reader DC FontPack包含了各种语言和排版系统所需的字体,确保用户能够在本地环境中正确显示...

    C#使用Adobe Reader读取PDF

    在实际开发中,可以参考这个文件来了解如何正确地调用Adobe Reader API,以及如何解决遇到的问题。 总之,通过C#结合Adobe Reader控件,我们可以为用户创建一个能够浏览PDF的桌面应用。然而,考虑到性能、安全性和...

    Adobe Reader XI v11.0.0 官方中文版

    本文将深入探讨Adobe Reader XI的主要功能、特点以及使用技巧。 首先,Adobe Reader XI的核心功能在于阅读PDF文档。它可以打开并显示PDF文件的所有内容,包括文字、图像、图表、超链接等,并且能够保持原文档的格式...

    Adobe Reader增加书签功能文件及安放路径与方法

    Adobe Reader是一款广泛使用的PDF文档阅读器,它提供了丰富的功能,包括查看、打印、注释以及管理PDF文件。在描述中提到的"Adobe Reader增加书签功能文件及安放路径与方法",是关于如何利用Adobe Reader增强PDF文档...

    为 adobe reder添加书签

    在提供的压缩包文件“为Adobe Reader添加书签”中,可能包含了详细的步骤说明、插件安装文件或配置教程,用户可以按照文件内的指示进行操作,以实现更个性化的书签管理和解决中文乱码问题。 总的来说,为Adobe ...

    adobe reader 1.0加入书签功能

    为了解决这一问题,开发者们通过利用Adobe Reader的SDK(软件开发工具包)创建了自定义的书签解决方案。这个解决方案通常涉及到编写JavaScript脚本,这些脚本能够与Adobe Reader的API进行交互,实现书签的添加、保存...

Global site tag (gtag.js) - Google Analytics