mirror of
https://github.com/zen-browser/pdf.js.git
synced 2025-07-08 17:30:09 +02:00
[api-minor] Support accessing both the original and modified PDF fingerprint
The PDF.js API has only ever supported accessing the original file ID, however the second one that (should) exist in *modified* documents have thus far been completely inaccessible through the API. That seems like a simple oversight, caused e.g. by the viewer not needing it, since it really shouldn't hurt to provide API-users with the ability to check if a PDF document has been modified since its creation.[1] Please refer to https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf#G13.2261661 for additional information. For an example of how to update existing code to use the new API, please see the changes in the `web/app.js` file included in this patch. *Please note:* While I'm not sure if we'll ever be able to remove the old `PDFDocumentProxy.fingerprint` getter, given that it's existed since "forever", that probably isn't a big deal given that it's now limited to only `GENERIC`-builds. --- [1] Although this obviously depends on the PDF software following the specification, by updating the second file ID as intended.
This commit is contained in:
parent
f9d506cf50
commit
661c60ecc9
5 changed files with 77 additions and 33 deletions
|
@ -722,6 +722,18 @@ class PDFDocumentProxy {
|
|||
constructor(pdfInfo, transport) {
|
||||
this._pdfInfo = pdfInfo;
|
||||
this._transport = transport;
|
||||
|
||||
if (typeof PDFJSDev === "undefined" || PDFJSDev.test("GENERIC")) {
|
||||
Object.defineProperty(this, "fingerprint", {
|
||||
get() {
|
||||
deprecated(
|
||||
"`PDFDocumentProxy.fingerprint`, " +
|
||||
"please use `PDFDocumentProxy.fingerprints` instead."
|
||||
);
|
||||
return this.fingerprints[0];
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -739,10 +751,13 @@ class PDFDocumentProxy {
|
|||
}
|
||||
|
||||
/**
|
||||
* @type {string} A (not guaranteed to be) unique ID to identify a PDF.
|
||||
* @type {Array<string, string|null>} A (not guaranteed to be) unique ID to
|
||||
* identify the PDF document.
|
||||
* NOTE: The first element will always be defined for all PDF documents,
|
||||
* whereas the second element is only defined for *modified* PDF documents.
|
||||
*/
|
||||
get fingerprint() {
|
||||
return this._pdfInfo.fingerprint;
|
||||
get fingerprints() {
|
||||
return this._pdfInfo.fingerprints;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue