Chrome онлайн PDF расчет не удается - PullRequest
0 голосов
/ 28 мая 2018

У меня странная ситуация с 64-разрядной версией Chrome 66.0.3359.181 и интерактивным файлом PDF (версия 1.6, Acrobat 7.x).

Все поля рассчитаны правильно с помощью Acrobat Reader DC 2018.011.20040, но не в Хроме.Любая помощь оценила, как я мог изменить файл так, чтобы он вычислялся правильно.

Файл, о котором идет речь: http://tietoala.fi/rauta/wp-content/uploads/2018/05/matkalasku_2018.pdf Это на финском языке, если это имеет значение.В финском языке десятичный разделитель - запятая ", а не точка". ".Это может быть хотя бы отчасти причиной.Эта форма предназначена для всех, кто претендует на компенсацию за поездку.

Давайте возьмем, например, поле € для "Такси".Если я поставлю «20», то получится правильно «20,00 €» как для этого поля, так и для общего расчета.Но, если я поставлю «20,50», в поле получится «20,50 €», а итоговый калькуляция - «20050,00 €», что явно неверно.

Расчет для общей суммыустанавливается на «Значение является суммой (+) следующих полей:», а затем выбираются соответствующие два поля.Он имеет формат «Число» с двумя десятичными знаками, стиль разделителя «1234,56» (как на финском языке) и символ валюты «€».Поле не заблокировано.Это поле не проверено.Действие отсутствует.

Кроме того, при заполнении поля «Километрикорваус», при добавлении «2» в км и «2» в €, оно корректно рассчитывается как 4,00 €.Но, если использовать «0,44» в качестве €, общее количество говорит «Nan €».Здесь поля такие же, как описано выше, но расчет выглядит следующим образом:

var f1 = this.getField("km1");
var f2 = this.getField("a5");
if ( f1.value*f2.value != 0 )
  event.value = f1.value * f2.value;
else
  event.value = "";

Буду признателен за любую помощь в выяснении, как исправить мою форму.Спасибо!

1 Ответ

0 голосов
/ 29 мая 2018

Краткий ответ: вы не можете использовать Acrobat для создания прототипов форм, которые вы хотите запускать в других средствах просмотра.Acrobat и Reader - ваш лучший сценарий, так как он имеет наибольшую поддержку JavaScript.Все остальные ... повторяю ... все остальные ... имеют меньшую поддержку, включая собственный мобильный ридер Adobe.

Длинный ответ: не все средства просмотра PDF используют JavaScript так же, как Acrobat, и большинство нереализовать полный набор объектов, событий и свойств как Acrobat.Например, Chrome не выполняет сценарии форматирования, которые есть в некоторых ваших полях.Я предполагаю, что Chrome интерпретирует числа с запятыми в них как строки.

Устанавливая для поля числовое значение и стиль разделителя для использования запятой, а не десятичной точки, Acrobat автоматически добавляет в поле JavaScript, что заставляет его возвращать число.

enter image description here

Chrome не выполняет этот встроенный скрипт, поэтому он неправильно интерпретирует значение поля.Попробуйте добавить в ваш скрипт некоторый код, который сначала анализирует значение поля для Number, а затем выполняет математические вычисления.Это будет более многословно, но в Acrobat и Chrome он будет работать одинаково.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...