pdf icon indicating copy to clipboard operation
pdf copied to clipboard

Panics with invalid date

Open threeseed opened this issue 1 year ago • 5 comments

Attached is a reproducible test case with it panicking within the following method:

impl Object for Date {
    fn from_primitive(p: Primitive, r: &impl Resolve) -> Result<Self> {}
}

With the following date:

2/10/2024 19:54:36

Ideally it shouldn't bail if there is an invalid date but maybe render a blank string.

threeseed avatar Feb 20 '24 09:02 threeseed

Test - Date.pdf

threeseed avatar Feb 20 '24 09:02 threeseed

It returns an Error which is correct, because this is not a valid PDF file.

2/10/2024 19:54:36 is not a valid date. Check 7.9.4 of PDF32000.

Date values used in a PDF shall conform to a standard date format, which closely follows that of the international standard ASN.1 (Abstract Syntax Notation One), defined in ISO/IEC 8824. A date shall be a text string of the form ( D : YYYYMMDDHHmmSSOHH ' mm )`

s3bk avatar Feb 20 '24 15:02 s3bk

Just encountered this today. While it's true that it's not standard, it's also rather common in the wild. I checked with bank statement PDFs from four different banks and pdf-rs panicked on the date on every one. Is it out-of-scope of this project to make the parser more lenient? (Generation can be strict to the standard, sure).

yutotakano avatar Dec 21 '24 13:12 yutotakano

Reviewing this again but it shouldn't be panicking for incorrect dates.

threeseed avatar Dec 22 '24 10:12 threeseed

@yutotakano You are welcome to make a PR that changes the behavior to a simple String wrapper with a function to try and extract the date.

s3bk avatar Dec 22 '24 15:12 s3bk