1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-22 16:18:08 +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:
Jonas Jenwald 2021-07-02 16:36:27 +02:00
parent f9d506cf50
commit 661c60ecc9
5 changed files with 77 additions and 33 deletions

View file

@ -1220,7 +1220,7 @@ const PDFViewerApplication = {
pdfThumbnailViewer.setDocument(pdfDocument);
const storedPromise = (this.store = new ViewHistory(
pdfDocument.fingerprint
pdfDocument.fingerprints[0]
))
.getMultiple({
page: null,
@ -1252,7 +1252,7 @@ const PDFViewerApplication = {
const viewOnLoad = AppOptions.get("viewOnLoad");
this._initializePdfHistory({
fingerprint: pdfDocument.fingerprint,
fingerprint: pdfDocument.fingerprints[0],
viewOnLoad,
initialDest: openAction?.dest,
});
@ -1511,7 +1511,7 @@ const PDFViewerApplication = {
// Provides some basic debug information
console.log(
`PDF ${pdfDocument.fingerprint} [${info.PDFFormatVersion} ` +
`PDF ${pdfDocument.fingerprints[0]} [${info.PDFFormatVersion} ` +
`${(info.Producer || "-").trim()} / ${(info.Creator || "-").trim()}] ` +
`(PDF.js: ${version || "-"})`
);