parent
55db43966e
commit
136c1faa7f
@ -324,7 +324,7 @@ class Catalog {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!outlineDict.has("Title")) {
|
if (!outlineDict.has("Title")) {
|
||||||
throw new FormatError("Invalid outline item encountered.");
|
warn("Invalid outline item encountered.");
|
||||||
}
|
}
|
||||||
|
|
||||||
const data = { url: null, dest: null, action: null };
|
const data = { url: null, dest: null, action: null };
|
||||||
@ -357,7 +357,7 @@ class Catalog {
|
|||||||
unsafeUrl: data.unsafeUrl,
|
unsafeUrl: data.unsafeUrl,
|
||||||
newWindow: data.newWindow,
|
newWindow: data.newWindow,
|
||||||
setOCGState: data.setOCGState,
|
setOCGState: data.setOCGState,
|
||||||
title: stringToPDFString(title),
|
title: typeof title === "string" ? stringToPDFString(title) : "",
|
||||||
color: rgbColor,
|
color: rgbColor,
|
||||||
count: Number.isInteger(count) ? count : undefined,
|
count: Number.isInteger(count) ? count : undefined,
|
||||||
bold: !!(flags & 2),
|
bold: !!(flags & 2),
|
||||||
|
|||||||
2
test/pdfs/issue17856.pdf.link
Normal file
2
test/pdfs/issue17856.pdf.link
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
https://github.com/mozilla/pdf.js/files/14808044/outline-without-title.pdf
|
||||||
|
|
||||||
@ -9779,5 +9779,13 @@
|
|||||||
"rounds": 1,
|
"rounds": 1,
|
||||||
"link": true,
|
"link": true,
|
||||||
"type": "eq"
|
"type": "eq"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "issue17856",
|
||||||
|
"file": "pdfs/issue17856.pdf",
|
||||||
|
"md5": "b31e5258948f0f4bb99eb5d4127c2162",
|
||||||
|
"rounds": 1,
|
||||||
|
"link": true,
|
||||||
|
"type": "other"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@ -1719,6 +1719,36 @@ describe("api", function () {
|
|||||||
await loadingTask.destroy();
|
await loadingTask.destroy();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("gets outline, with missing title (issue 17856)", async function () {
|
||||||
|
if (isNodeJS) {
|
||||||
|
pending("Linked test-cases are not supported in Node.js.");
|
||||||
|
}
|
||||||
|
const loadingTask = getDocument(buildGetDocumentParams("issue17856.pdf"));
|
||||||
|
const pdfDoc = await loadingTask.promise;
|
||||||
|
const outline = await pdfDoc.getOutline();
|
||||||
|
|
||||||
|
expect(Array.isArray(outline)).toEqual(true);
|
||||||
|
expect(outline.length).toEqual(9);
|
||||||
|
|
||||||
|
expect(outline[0]).toEqual({
|
||||||
|
action: null,
|
||||||
|
attachment: undefined,
|
||||||
|
dest: "section.1",
|
||||||
|
url: null,
|
||||||
|
unsafeUrl: undefined,
|
||||||
|
newWindow: undefined,
|
||||||
|
setOCGState: undefined,
|
||||||
|
title: "",
|
||||||
|
color: new Uint8ClampedArray([0, 0, 0]),
|
||||||
|
count: undefined,
|
||||||
|
bold: false,
|
||||||
|
italic: false,
|
||||||
|
items: [],
|
||||||
|
});
|
||||||
|
|
||||||
|
await loadingTask.destroy();
|
||||||
|
});
|
||||||
|
|
||||||
it("gets outline, with dest-strings using PDFDocEncoding (issue 14864)", async function () {
|
it("gets outline, with dest-strings using PDFDocEncoding (issue 14864)", async function () {
|
||||||
if (isNodeJS) {
|
if (isNodeJS) {
|
||||||
pending("Linked test-cases are not supported in Node.js.");
|
pending("Linked test-cases are not supported in Node.js.");
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user