Skip to content

Commit e3f8c2c

Browse files
committed
Added internal.getPageInfo method to get objId of page
1 parent 1f5f0bc commit e3f8c2c

File tree

3 files changed

+11
-5
lines changed

3 files changed

+11
-5
lines changed

jspdf.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -963,7 +963,11 @@ var jsPDF = (function(global) {
963963
'getNumberOfPages' : function() {
964964
return pages.length - 1;
965965
},
966-
'pages' : pages
966+
'pages' : pages,
967+
'getPageInfo' : function(pageNumberOneBased){
968+
var objId = (pageNumberOneBased - 1) * 2 + 3;
969+
return {objId:objId};
970+
}
967971
};
968972

969973
/**

jspdf.plugin.annotations.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,8 @@
109109
line = '<</Type /Annot /Subtype /Link ' + rect + '/Border [0 0 0] /A <</S /URI /URI (' + anno.options.url + ') >>';
110110
} else if (anno.options.pageNumber) {
111111
// first page is 0
112-
var pageObjId = anno.options.pageNumber * 2 + 1;
113-
line = '<</Type /Annot /Subtype /Link ' + rect + '/Border [0 0 0] /Dest [' + pageObjId + " 0 R";
112+
var info = this.internal.getPageInfo(anno.options.pageNumber);
113+
line = '<</Type /Annot /Subtype /Link ' + rect + '/Border [0 0 0] /Dest [' + info.objId + " 0 R";
114114
anno.options.magFactor = anno.options.magFactor || "XYZ";
115115
switch (anno.options.magFactor) {
116116
case 'Fit':

jspdf.plugin.outline.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@
5656
for (var i = 0; i < totalPages; i++) {
5757
var id = pdf.internal.newObject();
5858
dests.push(id);
59-
pdf.internal.write("<< /D[" + (i * 2 + 3) + " 0 R /XYZ null null null]>> endobj");
59+
var info = pdf.internal.getPageInfo(i+1);
60+
pdf.internal.write("<< /D[" + info.objId + " 0 R /XYZ null null null]>> endobj");
6061
}
6162

6263
// assign a name for each destination
@@ -185,7 +186,8 @@
185186
if (item.options.pageNumber) {
186187
// Explicit Destination
187188
//WARNING this assumes page ids are 3,5,7, etc.
188-
this.line('/Dest ' + '[' + ((item.options.pageNumber - 1) * 2 + 3) + ' 0 R /XYZ 0 ' + this.ctx.pdf.internal.pageSize.height + ' 0]');
189+
var info = pdf.internal.getPageInfo(item.options.pageNumber)
190+
this.line('/Dest ' + '[' + info.objId + ' 0 R /XYZ 0 ' + this.ctx.pdf.internal.pageSize.height + ' 0]');
189191
// this line does not work on all clients (pageNumber instead of page ref)
190192
//this.line('/Dest ' + '[' + (item.options.pageNumber - 1) + ' /XYZ 0 ' + this.ctx.pdf.internal.pageSize.height + ' 0]');
191193

0 commit comments

Comments
 (0)