Itextsharp: ошибка при декодировании даты создания в файле PDF - PullRequest
1 голос
/ 06 декабря 2010

Я получаю следующую ошибку при декодировании даты создания:

A first chance exception of type 'System.ArgumentOutOfRangeException'
occurred in mscorlib.dll
Hour, Minute, and Second parameters describe an un-representable DateTime.

Я делаю pdfdate.decode(xdoc.info("creationdate"))

Вот информация из файла PDF:

/CreationDate (D:191010319150120)
/Producer (Acrobat Distiller Daemon 3.01 for Solaris 2.3 and later \(SPARC\))
/Creator (tif_convert_2_ps\(\))
/Title (/tardir/tiffs/a386689.tiff)
/ModDate (D:20010320070957)

Дата модификации, по-видимому, является действительной, но дата создания кажется мне несколько странной ...

Еще более интригующим является то, что когда я получаю свойства этого файла с помощью Adobe Reader,показывает действительную дату для поля даты создания.

Есть предложения?

Ответы [ 3 ]

2 голосов
/ 09 сентября 2011

В версиях Adobe Distiller до 3.02 была ошибка Y2K, из-за которой они записывали недопустимые значения CreationDate для файлов, созданных 1 января 2000 года или после этой даты. Вот ссылка на исправление, которое исправило эту проблему для Distiller 3.02:

http://www.adobe.com/support/downloads/detail.jsp?ftpID=661

Ваш PDF был создан Distiller 3.01, поэтому в нем есть ошибка.Дата его создания «191010319150120» - «19101» (например, через 101 год после базового 1900 или 2001 года), «0319» для 19 марта, «150120» для 15:01:20 (15:01:20);Я бы предположил, что эта дата / время - UTC, а ваш сервер отстает от UTC на 8 часов, что приводит к отображению времени в 7:01:20 в тот же день.

Я не знаю оспособ исправить значение CreationDate: текущие версии Acrobat и Reader могут четко отображать неверную строку, но я сомневаюсь, что функция, которую вы используете, имеет этот хак.Надеюсь, это поможет.

1 голос
/ 01 февраля 2011

Я тоже столкнулся с подобным примером - это похоже на ошибку y2k :) Замените «191» на «20», и вы получите хороший формат даты ...

1 голос
/ 07 декабря 2010

В спецификации PDF сказано, что даты PDF определены следующим образом:

D:YYYYMMDDHHmmSSOHH'mm
D:191010319150120

- это 1910, октябрь (10) 31 (Хэллоуин), 91 ч, 50 м, 12 с 0

Я верю«91h» - это проблема ... и конечный 0 должен быть плюсом или минусом как часть смещения UT (часть «HH'mm»).

Возможно, Adobe более отказоустойчив,MOD-24 'часы и игнорирование нуля.Похоже, нам нужно привести наш код в соответствие.Из любопытства, какую дату показывает Reader?

...