Hopding / pdf-lib

Create and modify PDF documents in any JavaScript environment
https://pdf-lib.js.org
MIT License
6.71k stars 643 forks source link

Trying to parse invalid object. #1274

Open Aizaz-ul-haq opened 2 years ago

Aizaz-ul-haq commented 2 years ago

What were you trying to do?

I am trying to merge three pdf files. one of these files (find the attached file) can not be parsed and keeps returning the following errors:

Trying to parse invalid object: {"line":2327,"column":6,"offset":396013}) Invalid object ref: 15 0 R Trying to parse invalid object: {"line":2424,"column":6,"offset":473052}) Invalid object ref: 417 0 R E:\Me\example-project\BackEnd\falaya-backend\node_modules\pdf-lib\src\core\errors.ts:26 but got instance of ${actual ? actual.constructor.name : actual}; ^ Error: Expected instance of PDFDict, but got instance of undefined The file is not encrypted, there could be some fields using x/y coordinates since it is being generated by a pdf signing software that could be causing this issue. but I am not sure.

The pdf file I am using is: pdf file

How did you attempt to do it?

document = await PDFDocument.load(document.buffer, { ignoreEncryption: true });

What actually happened?

I got the following errors: Trying to parse invalid object: {"line":2327,"column":6,"offset":396013}) Invalid object ref: 15 0 R Trying to parse invalid object: {"line":2424,"column":6,"offset":473052}) Invalid object ref: 417 0 R E:\Me\example-project\BackEnd\falaya-backend\node_modules\pdf-lib\src\core\errors.ts:26 but got instance of ${actual ? actual.constructor.name : actual}; ^ Error: Expected instance of PDFDict, but got instance of undefined

What did you expect to happen?

Load the pdf and merge all the documents in a single pdf file.

How can we reproduce the issue?

Load the attached file.

Version

1.4.1

What environment are you running pdf-lib in?

Node

Checklist

Additional Notes

No response

pheidler commented 11 months ago

A little late, but I was having the same issue and this appears to be the root cause: https://github.com/Hopding/pdf-lib/issues/623#issuecomment-724654427

davidstackio commented 2 months ago

The example pdf provided is encrypted. You can tell by the (SECURED) message when opening in a pdf reader app (not the browser). See: https://www.quora.com/How-would-I-know-if-a-PDF-document-is-password-protected

I'm having the same issue with my encrypted/secured pdfs.

Depending on your use case you may be able to use a fork of this repo as described here: https://github.com/Hopding/pdf-lib/issues/1616

Related comment: https://github.com/Hopding/pdf-lib/issues/1260#issuecomment-2171763102

davidstackio commented 2 months ago

Possible duplicate https://github.com/Hopding/pdf-lib/issues/1260