【问题标题】:Acrobat Reader doesn't recognize relative pathAcrobat Reader 无法识别相对路径
【发布时间】:2018-01-22 13:40:49
【问题描述】:

我将 Excel 工作表导出为制表符分隔文件 (.txt),现在尝试通过 Acrobat Reader Pro DC 将其批量导入 PDF 格式。 只要路径是绝对的,这与导入所述 .txt 的操作完美配合。因为我想发送文件并让其他人也运行,所以我需要相对路径。我目前的做法是改变

var fileName = "/C/Users/somefancyname/Desktop/export.txt";
this.importTextData(fileName, somerowcounter)

var fileName = "export.txt";
this.importTextData(fileName, somerowcounter)

不幸的是,这会引发“无法打开文件”错误。我运行此脚本的文件与文本文件处于同一级别。我唯一的猜测是,路径是相对于 acrobat 应用程序,而不是文档,但我再也忍不住了,因为这是我第一次使用 Acrobat JS 的方法。

感谢您的任何建议!

【问题讨论】:

    标签: javascript excel vba relative-path acrobat


    【解决方案1】:

    看来importTextData的可选cPath参数是:

    "A relative device-independent path to the text file." 这实际上看起来正是您所需要的。然而,在示例中,它们给出了绝对路径。

    您是否可以考虑要求用户以某种方式提供路径并进一步使用它?

    【讨论】:

    • 谈论“相对”的设备无关路径,这不正是我需要的吗?
    • @Rufrage - 实际上你需要“相对”,而不是绝对的。但不知何故,在示例中,它们给出了“绝对”路径。确实有点奇怪。
    • 我的想法完全正确。但是,我给定的示例有效,但相对方式无效。关于如何从当前文档构建绝对路径的任何建议?
    • Adobe 需要处理它们的功能,或者更正文档。但是,它通过创建当前目录的路径并将文件名附加到它来工作。检查我的答案,再次感谢!
    【解决方案2】:

    我找到了一种创建伪相对路径的 hacky 方法。经测试,有效!

    您只需使用文档文件名的长度并将其从文档路径中减去。这将授予您文档的基本路径。

    var filenameLength = this.documentFileName.length * -1;
    var basePath = this.path.slice(0, filenameLength);
    

    然后您继续使用此基本路径在此位置为您的文件创建一个绝对路径,就好像这些是相对路径一样。

    var fileName = basePath + "export.txt";
    var outputFodler = basePath + "/OutputFolder/";
    ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-17
      • 1970-01-01
      • 1970-01-01
      • 2018-05-25
      • 2016-09-11
      • 2015-04-19
      • 2021-05-24
      • 2019-07-20
      相关资源
      最近更新 更多