JS звучит как путь ... в основном.
Вы можете добавить пустое текстовое поле, где вы хотите, чтобы дата появилась. Когда кто-то открывает PDF-файл в первый раз, вы можете установить значение поля.
ВОПРОСЫ:
- Reader не может сохранить измененные PDF-файлы, если они не были включены Reader через Acrobat.
- Сценарий будет запускаться, когда файл PDF открыт , а не загружен .
Если вы действительно хотите отметить время их загрузки, вам нужно сделать это на сервере. Снова поля, только на этот раз с некоторым смещением байтов.
Установите ключевые слова (или автора, что угодно ... одно из полей Doc Info, которое вы не используете) на кучу пустых мест ... достаточно, чтобы вместить вашу самую большую метку времени. В скрипте, когда форма открыта, вы ВСЕГДА пишете это информационное поле в поле вашей метки времени. Не беспокойтесь о включении считывателя.
Теперь, чтобы на самом деле записать метку времени, вам нужно знать точное смещение байтов этого информационного поля в вашем PDF, и вам нужно знать, сколько пустого пространства вам нужно для работы, чтобы вы не переполнились случайно (что было бы очень плохо). Когда придет время обслуживать ваш PDF, вы высасываете байты, меняете их для своей метки времени и сервер изменяете эти байты.
Это самый эффективный (и хрупкий) способ сделать это.
Если вы предпочитаете делать все правильно, используйте вашу любимую библиотеку PDF, чтобы изменить значение формы и предоставить полученный PDF. Сценарий не требуется, но значительно больше работы для вашего сервера.
Примечание : Несколько полей могут иметь одно и то же имя. Они автоматически имеют одинаковую ценность. Поэтому, если вы хотите, чтобы отметка времени отображалась на каждой странице, вам не нужны "timestamp1", "timestamp2" и т. Д. Вы можете дать всем полям одно и то же имя, а затем установить значение один раз. «Ваша любимая библиотека PDF» может не справиться с этим ужасно хорошо. iText делает, я уверен, что другие тоже.