【问题标题】:How to use JavaScript in PDF to discern a user's operating system如何在 PDF 中使用 JavaScript 来识别用户的操作系统
【发布时间】:2018-11-19 00:45:17
【问题描述】:

我想构建一个能够检测打开它的用户的操作系统的 PDF,从而根据访问 PDF 的操作系统提供不同的信息。

我很难找出我需要用来完成看似简单的任务的 JS。我不能使用它,因为它是一个浏览器变量:

let platform = navigator.platform;

我非常了解用于 Web 的 JavaScript,并且可以解决大多数问题,但我也无法弄清楚如何在 JS 中为 PDF-JS 使用正确的方法。

所以我的问题是,有人能告诉我使用 JavaScript 访问 PDF 中操作系统信息的正确方法吗(因为我认为这是唯一可能的方法)?您能否提供一些代码示例,说明我将如何从文档中包含的代码写入 PDF?

例如,用户打开 PDF 并且他们在 Windows/Mac/Linux 设备上,因此它显示“欢迎来自 Windows/Mac/Linux”。

更新

这是我想出的使用 Adob​​e API 的 JS。正如我所问的,我如何写入正在打开的实际文档,这样我就不必打开辅助报告?有一个 Doc 对象,但输出不是简单的文本,它被某种类型的彩色元素包围。

这是有效的报告版本,但会打开辅助文档:

var rep = new Report();
rep.size = 1.2;
rep.color = color.black;

switch(app.platform.toString()){
    case "WIN":
        rep.writeText("Hello from Windows!");
        break;
    case "MAC":
        rep.writeText("Hello from Mac!");
        break;
    case "UNIX":
        rep.writeText("Hello from Unix!");
        break;
    default:
        rep.writeText("Hello from...maybe solaris?");
        break;
}

// open created report
var docRep = rep.open("welcome.pdf");
docRep.info.Title = "Custom Title";

这是写入页面的版本,但不仅仅是纯文本,它是可编辑的,我不想要:

var fieldName = "welcome";
var inch = 100;
var fvalue = this.addField(fieldName, "text", 0, [inch*4,inch*5,inch*2,inch*3]);

switch(app.platform.toString()){
    case "WIN":
        fvalue.value = "Hello from Windows!";
        break;
    case "MAC":
        fvalue.value = "Hello from Mac!";
        break;
    case "UNIX":
        fvalue.value = "Hello from Unix!";
        break;
    default:
        fvalue.value = "Hello from...somewhere else";
        break;
}

【问题讨论】:

    标签: javascript pdf adobe acrobat


    【解决方案1】:

    你可以使用app.platform:

    平台

    脚本当前正在执行的平台。共有三个有效值:
    - 赢
    - MAC
    - UNIX

    参考:https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/js_api_reference.pdf

    【讨论】:

    • 您能否查看我的最新更新,看看您能否将我指向一个不可编辑且没有周围彩色区域的文本字段的方向?我在没有完整答案的情况下将此答案标记为正确,因为我的标题正在询问您提供的答案,并且参考很棒!
    • 现在也是“iOS”。
    猜你喜欢
    • 2012-10-30
    • 2016-06-08
    • 2013-04-27
    • 2018-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多