parallax/jsPDF · error · Error
Invalid argument passed to jsPDF.getPageInfo
Error message
Invalid argument passed to jsPDF.getPageInfo
What it means
Thrown by jsPDF.getPageInfo when pageNumberOneBased is NaN or not an integer. The guard is `isNaN(pageNumberOneBased) || pageNumberOneBased % 1 !== 0`, so non-numbers (coerced to NaN), fractional page numbers, Infinity, and undefined all fail. The page number is 1-based and must index an existing page.
Source
Thrown at src/jspdf.js:3316
setFileId();
var getEncryptor = function(objectId) {
if (encryptionOptions !== null) {
return encryption.encryptor(objectId, 0);
}
return function(data) {
return data;
};
};
//---------------------------------------
// Public API
var getPageInfo = (API.__private__.getPageInfo = API.getPageInfo = function(
pageNumberOneBased
) {
if (isNaN(pageNumberOneBased) || pageNumberOneBased % 1 !== 0) {
throw new Error("Invalid argument passed to jsPDF.getPageInfo");
}
var objId = pagesContext[pageNumberOneBased].objId;
return {
objId: objId,
pageNumber: pageNumberOneBased,
pageContext: pagesContext[pageNumberOneBased]
};
});
var getPageInfoByObjId = (API.__private__.getPageInfoByObjId = function(
objId
) {
if (isNaN(objId) || objId % 1 !== 0) {
throw new Error("Invalid argument passed to jsPDF.getPageInfoByObjId");
}
for (var pageNumber in pagesContext) {
if (pagesContext[pageNumber].objId === objId) {
break;View on GitHub (pinned to a3930ce03a)
Solutions
- Pass a 1-based integer within the existing page range: getPageInfo(pageNumber).
- Coerce and validate before calling: `const n = Number(x); if (Number.isInteger(n) && n >= 1 && n <= doc.getNumberOfPages()) ...`.
- Double-check you are not passing a 0-based index from an array loop.
Example fix
// before const info = doc.getPageInfo(i); // i comes from a 0-based loop, may be 0 // after const info = doc.getPageInfo(i + 1); // 1-based
Defensive patterns
Strategy: validation
Validate before calling
function safeGetPageInfo(doc, pageNumber) {
const n = Number(pageNumber);
if (!Number.isInteger(n) || n < 1 || n > doc.getNumberOfPages()) {
throw new Error('page number must be a 1-based integer in range');
}
return doc.getPageInfo(n);
} Type guard
function isPositiveInteger(v) { return Number.isInteger(v) && v >= 1; } Prevention
- Remember getPageInfo is 1-based.
- Validate integer-and-range before calling.
- Do not pass floats or strings from user input unchecked.
When it happens
Trigger: Calling getPageInfo(undefined), getPageInfo(1.5), getPageInfo('abc'), getPageInfo(NaN), or getPageInfo(0) where 0 may be out of range; passing a float computed from a division.
Common situations: Off-by-one errors (0-based loop fed to a 1-based API); passing a string from user input without parsing; floats from average/ratio calculations; forgetting getPageInfo is 1-based.
Related errors
- Invalid argument passed to jsPDF.getPageInfoByObjId
- Invalid arguments passed to jsPDF.text
- Type of text must be string or Array. "{text}" is not recogn
- Unrecognized alignment option, use "left", "center", "right"
- Invalid arguments passed to jsPDF.line
AI-assisted analysis of parallax/jsPDF@a3930ce03a (2026-08-13).
Data as JSON: /api/errors/8b2d096bdb2d7f40.
Report an issue: GitHub.