@@ -813,21 +813,37 @@ var jsPDF = (function (global) {
813
813
} ;
814
814
815
815
var putPage = API . __private__ . putPage = function ( page ) {
816
- var dimensions = page . dimensions ;
816
+ var mediaBox = page . mediaBox ;
817
817
var pageNumber = page . number ;
818
818
var data = page . data ;
819
819
var pageObjectNumber = page . objId ;
820
820
var pageContentsObjId = page . contentsObjId ;
821
821
822
822
newObjectDeferredBegin ( pageObjectNumber , true ) ;
823
- var wPt = dimensions . width ;
824
- var hPt = dimensions . height ;
823
+ var wPt = pagesContext [ currentPage ] . mediaBox . topRightX - pagesContext [ currentPage ] . mediaBox . bottomLeftX ;
824
+ var hPt = pagesContext [ currentPage ] . mediaBox . topRightY - pagesContext [ currentPage ] . mediaBox . bottomLeftY ;
825
825
out ( '<</Type /Page' ) ;
826
826
out ( '/Parent ' + page . rootDictionaryObjId + ' 0 R' ) ;
827
827
out ( '/Resources ' + page . resourceDictionaryObjId + ' 0 R' ) ;
828
- out ( '/MediaBox [0 0 ' + f2 ( wPt ) + ' ' + f2 ( hPt ) + ']' ) ;
829
- if ( typeof dimensions . userUnit === "number" && dimensions . userUnit !== 1.0 ) {
830
- out ( '/UserUnit ' + dimensions . userUnit ) ;
828
+ out ( '/MediaBox [' + parseFloat ( f2 ( page . mediaBox . bottomLeftX ) ) + ' ' + parseFloat ( f2 ( page . mediaBox . bottomLeftY ) ) + ' ' + f2 ( pagesContext [ currentPage ] . mediaBox . topRightX ) + ' ' + f2 ( pagesContext [ currentPage ] . mediaBox . topRightY ) + ']' ) ;
829
+ if ( page . cropBox !== null ) {
830
+ out ( '/CropBox [' + f2 ( page . cropBox . bottomLeftX ) + ' ' + f2 ( page . cropBox . bottomLeftY ) + ' ' + f2 ( page . cropBox . topRightX ) + ' ' + f2 ( page . cropBox . topRightY ) + ']' ) ;
831
+ }
832
+
833
+ if ( page . bleedBox !== null ) {
834
+ out ( '/BleedBox [' + f2 ( page . bleedBox . bottomLeftX ) + ' ' + f2 ( page . bleedBox . bottomLeftY ) + ' ' + f2 ( page . bleedBox . topRightX ) + ' ' + f2 ( page . bleedBox . topRightY ) + ']' ) ;
835
+ }
836
+
837
+ if ( page . trimBox !== null ) {
838
+ out ( '/TrimBox [' + f2 ( page . trimBox . bottomLeftX ) + ' ' + f2 ( page . trimBox . bottomLeftY ) + ' ' + f2 ( page . trimBox . topRightX ) + ' ' + f2 ( page . trimBox . topRightY ) + ']' ) ;
839
+ }
840
+
841
+ if ( page . artBox !== null ) {
842
+ out ( '/ArtBox [' + f2 ( page . artBox . bottomLeftX ) + ' ' + f2 ( page . artBox . bottomLeftY ) + ' ' + f2 ( page . artBox . topRightX ) + ' ' + f2 ( page . artBox . topRightY ) + ']' ) ;
843
+ }
844
+
845
+ if ( typeof page . userUnit === "number" && page . userUnit !== 1.0 ) {
846
+ out ( '/UserUnit ' + page . userUnit ) ;
831
847
}
832
848
833
849
events . publish ( 'putPage' , {
@@ -863,7 +879,12 @@ var jsPDF = (function (global) {
863
879
data : pages [ n ] ,
864
880
objId : pagesContext [ n ] . objId ,
865
881
contentsObjId : pagesContext [ n ] . contentsObjId ,
866
- dimensions : pagesContext [ n ] . dimensions ,
882
+ mediaBox : pagesContext [ n ] . mediaBox ,
883
+ cropBox : pagesContext [ n ] . cropBox ,
884
+ bleedBox : pagesContext [ n ] . bleedBox ,
885
+ trimBox : pagesContext [ n ] . trimBox ,
886
+ artBox : pagesContext [ n ] . artBox ,
887
+ userUnit : pagesContext [ n ] . userUnit ,
867
888
rootDictionaryObjId : rootDictionaryObjId ,
868
889
resourceDictionaryObjId : resourceDictionaryObjId
869
890
} ) ) ;
@@ -1234,10 +1255,16 @@ var jsPDF = (function (global) {
1234
1255
pagesContext [ page ] = {
1235
1256
objId : 0 ,
1236
1257
contentsObjId : 0 ,
1237
- dimensions : {
1238
- width : Number ( width ) ,
1239
- height : Number ( height ) ,
1240
- userUnit : Number ( userUnit )
1258
+ userUnit : Number ( userUnit ) ,
1259
+ artBox : null ,
1260
+ bleedBox : null ,
1261
+ cropBox : null ,
1262
+ trimBox : null ,
1263
+ mediaBox : {
1264
+ bottomLeftX : 0 ,
1265
+ bottomLeftY : 0 ,
1266
+ topRightX : Number ( width ) ,
1267
+ topRightY : Number ( height )
1241
1268
}
1242
1269
} ;
1243
1270
_setPage ( page ) ;
@@ -1274,12 +1301,10 @@ var jsPDF = (function (global) {
1274
1301
var _setPage = function ( n ) {
1275
1302
if ( n > 0 && n <= page ) {
1276
1303
currentPage = n ;
1277
- pagesContext [ currentPage ] . dimensions . width ;
1278
- pagesContext [ currentPage ] . dimensions . height ;
1279
1304
}
1280
1305
} ;
1281
1306
1282
- var getNumberOfPages = API . __private__ . getNumberOfPages = function ( ) {
1307
+ var getNumberOfPages = API . __private__ . getNumberOfPages = API . getNumberOfPages = function ( ) {
1283
1308
return pages . length - 1 ;
1284
1309
}
1285
1310
/**
@@ -1587,7 +1612,7 @@ var jsPDF = (function (global) {
1587
1612
1588
1613
//---------------------------------------
1589
1614
// Public API
1590
-
1615
+
1591
1616
var getPageInfo = API . __private__ . getPageInfo = function ( pageNumberOneBased ) {
1592
1617
if ( isNaN ( pageNumberOneBased ) || ( pageNumberOneBased % 1 !== 0 ) ) {
1593
1618
throw new Error ( 'Invalid argument passed to jsPDF.getPageInfo' ) ;
@@ -1599,7 +1624,7 @@ var jsPDF = (function (global) {
1599
1624
pageContext : pagesContext [ pageNumberOneBased ]
1600
1625
} ;
1601
1626
} ;
1602
-
1627
+
1603
1628
var getPageInfoByObjId = API . __private__ . getPageInfoByObjId = function ( objId ) {
1604
1629
var pageNumberWithObjId ;
1605
1630
for ( var pageNumber in pagesContext ) {
@@ -2783,15 +2808,15 @@ var jsPDF = (function (global) {
2783
2808
} ;
2784
2809
2785
2810
var getVerticalCoordinate = API . __private__ . getVerticalCoordinate = function ( value ) {
2786
- return pagesContext [ currentPage ] . dimensions . height - ( value * k ) ;
2811
+ return pagesContext [ currentPage ] . mediaBox . topRightY - pagesContext [ currentPage ] . mediaBox . bottomLeftY - ( value * k ) ;
2787
2812
} ;
2788
2813
2789
2814
var getHorizontalCoordinateString = API . __private__ . getHorizontalCoordinateString = function ( value ) {
2790
2815
return f2 ( value * k ) ;
2791
2816
} ;
2792
2817
2793
2818
var getVerticalCoordinateString = API . __private__ . getVerticalCoordinateString = function ( value ) {
2794
- return f2 ( pagesContext [ currentPage ] . dimensions . height - ( value * k ) ) ;
2819
+ return f2 ( pagesContext [ currentPage ] . mediaBox . topRightY - pagesContext [ currentPage ] . mediaBox . bottomLeftY - ( value * k ) ) ;
2795
2820
} ;
2796
2821
2797
2822
var strokeColor = options . strokeColor || '0 G' ;
@@ -3213,16 +3238,16 @@ var jsPDF = (function (global) {
3213
3238
'scaleFactor' : k ,
3214
3239
'pageSize' : {
3215
3240
getWidth : function ( ) {
3216
- return pagesContext [ currentPage ] . dimensions . width / k ;
3241
+ return ( pagesContext [ currentPage ] . mediaBox . topRightX - pagesContext [ currentPage ] . mediaBox . bottomLeftX ) / k ;
3217
3242
} ,
3218
3243
setWidth : function ( value ) {
3219
- pagesContext [ currentPage ] . dimensions . width = value * k ;
3244
+ pagesContext [ currentPage ] . mediaBox . topRightX = ( value * k ) + pagesContext [ currentPage ] . mediaBox . bottomLeftX ;
3220
3245
} ,
3221
3246
getHeight : function ( ) {
3222
- return pagesContext [ currentPage ] . dimensions . height / k ;
3247
+ return ( pagesContext [ currentPage ] . mediaBox . topRightY - pagesContext [ currentPage ] . mediaBox . bottomLeftY ) / k ;
3223
3248
} ,
3224
3249
setHeight : function ( value ) {
3225
- pagesContext [ currentPage ] . dimensions . height = value * k ;
3250
+ pagesContext [ currentPage ] . mediaBox . topRightY = ( value * k ) + pagesContext [ currentPage ] . mediaBox . bottomLeftY ;
3226
3251
} ,
3227
3252
} ,
3228
3253
'output' : output ,
@@ -3240,20 +3265,20 @@ var jsPDF = (function (global) {
3240
3265
3241
3266
Object . defineProperty ( API . internal . pageSize , 'width' , {
3242
3267
get : function ( ) {
3243
- return pagesContext [ currentPage ] . dimensions . width / k ;
3268
+ return ( pagesContext [ currentPage ] . mediaBox . topRightX - pagesContext [ currentPage ] . mediaBox . bottomLeftX ) / k ;
3244
3269
} ,
3245
3270
set : function ( value ) {
3246
- pagesContext [ currentPage ] . dimensions . width = value * k ;
3271
+ pagesContext [ currentPage ] . mediaBox . topRightX = ( value * k ) + pagesContext [ currentPage ] . mediaBox . bottomLeftX ;
3247
3272
} ,
3248
3273
enumerable : true ,
3249
3274
configurable : true
3250
3275
} ) ;
3251
3276
Object . defineProperty ( API . internal . pageSize , 'height' , {
3252
3277
get : function ( ) {
3253
- return pagesContext [ currentPage ] . dimensions . height / k ;
3278
+ return ( pagesContext [ currentPage ] . mediaBox . topRightY - pagesContext [ currentPage ] . mediaBox . bottomLeftY ) / k ;
3254
3279
} ,
3255
3280
set : function ( value ) {
3256
- pagesContext [ currentPage ] . dimensions . height = value * k ;
3281
+ pagesContext [ currentPage ] . mediaBox . topRightY = ( value * k ) + pagesContext [ currentPage ] . mediaBox . bottomLeftY ;
3257
3282
} ,
3258
3283
enumerable : true ,
3259
3284
configurable : true
0 commit comments