Как использовать JavaScript в PDF для распознавания операционной системы пользователя - PullRequest
0 голосов
/ 09 июня 2018

Я хочу создать PDF-файл, способный определять операционную систему пользователя, который его открывает, и, таким образом, предоставлять различную информацию в зависимости от ОС, из которой осуществляется доступ к PDF-файлу.

У меня возникли проблемы с поиском JS, который мне нужен для выполнения простой задачи.Я не могу использовать это, потому что это переменная браузера:

let platform = navigator.platform;

Я достаточно хорошо знаю JavaScript для Интернета и могу решить большинство проблем, но у меня также возникают проблемы с выяснением, как использовать правильныеметоды в JS для PDF-JS.

Итак, мои вопросы, может кто-нибудь показать мне правильный способ доступа к информации об операционной системе в PDF с помощью JavaScript (потому что я думаю, что это единственный возможный способ)?И не могли бы вы привести несколько примеров кода того, как я мог бы писать в PDF из кода, содержащегося в документе?

Например, пользователь открывает PDF-файл, и он находится на устройстве Windows / Mac / Linux.поэтому он говорит: «Добро пожаловать из Windows / Mac / Linux».

Обновление

Вот JS, использующий API Adobe, который я придумал.Как я и спрашивал, как мне написать действительный открываемый документ, чтобы мне не нужно было открывать дополнительный отчет?Есть объект 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;
}

1 Ответ

0 голосов
/ 09 июня 2018

Вы можете использовать app.platform:

платформа

Платформа, на которой в данный момент выполняется скрипт.Существует три допустимых значения:
- WIN
- MAC
- UNIX

Ссылка: https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/js_api_reference.pdf

...