mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-22 16:18:08 +02:00
Skip any whitespace after the first object in linearized PDFs (issue 17665)
This way the code is now consistent with the non-linearized branch in the `PDFDocument.startXRef` getter.
This commit is contained in:
parent
eb5e6e68d6
commit
37e98e39f6
4 changed files with 30 additions and 1 deletions
|
@ -930,7 +930,14 @@ class PDFDocument {
|
|||
// Find the end of the first object.
|
||||
stream.reset();
|
||||
if (find(stream, ENDOBJ_SIGNATURE)) {
|
||||
startXRef = stream.pos + 6 - stream.start;
|
||||
stream.skip(6);
|
||||
|
||||
let ch = stream.peekByte();
|
||||
while (isWhiteSpace(ch)) {
|
||||
stream.pos++;
|
||||
ch = stream.peekByte();
|
||||
}
|
||||
startXRef = stream.pos - stream.start;
|
||||
}
|
||||
} else {
|
||||
// Find `startxref` by checking backwards from the end of the file.
|
||||
|
|
|
@ -880,6 +880,9 @@ class WorkerMessageHandler {
|
|||
.ensureXRef("trailer")
|
||||
.then(trailer => trailer.get("Prev"));
|
||||
});
|
||||
handler.on("GetStartXRefPos", function (data) {
|
||||
return pdfManager.ensureDoc("startXRef");
|
||||
});
|
||||
handler.on("GetAnnotArray", function (data) {
|
||||
return pdfManager.getPage(data.pageIndex).then(function (page) {
|
||||
return page.annotations.map(a => a.toString());
|
||||
|
|
|
@ -768,6 +768,9 @@ class PDFDocumentProxy {
|
|||
Object.defineProperty(this, "getXRefPrevValue", {
|
||||
value: () => this._transport.getXRefPrevValue(),
|
||||
});
|
||||
Object.defineProperty(this, "getStartXRefPos", {
|
||||
value: () => this._transport.getStartXRefPos(),
|
||||
});
|
||||
Object.defineProperty(this, "getAnnotArray", {
|
||||
value: pageIndex => this._transport.getAnnotArray(pageIndex),
|
||||
});
|
||||
|
@ -2349,6 +2352,10 @@ class WorkerTransport {
|
|||
value: () =>
|
||||
this.messageHandler.sendWithPromise("GetXRefPrevValue", null),
|
||||
});
|
||||
Object.defineProperty(this, "getStartXRefPos", {
|
||||
value: () =>
|
||||
this.messageHandler.sendWithPromise("GetStartXRefPos", null),
|
||||
});
|
||||
Object.defineProperty(this, "getAnnotArray", {
|
||||
value: pageIndex =>
|
||||
this.messageHandler.sendWithPromise("GetAnnotArray", { pageIndex }),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue