Changeset 58708 in spip-zone


Ignore:
Timestamp:
Feb 20, 2012, 12:28:03 AM (8 years ago)
Author:
erational@…
Message:

maj avec la version svn

Location:
_plugins_/pdfjs
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/pdfjs/pdfjs.html

    r58441 r58708  
    3434        <script type="text/javascript" src="#CHEMIN{src/stream.js}"></script> 
    3535        <script type="text/javascript" src="#CHEMIN{src/worker.js}"></script> 
    36         [(#REM) dans la distrib on a aussi ../external/jpg.js
    37                 mais on le l'inclut pas car une fois la compression genere une erreur js ]
     36        [(#REM) dans la distrib on a aussi
     37                debugger.js         -> inutile
     38                ../external/jpg.js  ->  mais on le l'inclut pas car une fois la compression genere une erreur js ]
    3839        <script type="text/javascript" src="#CHEMIN{src/jpx.js}"></script> 
    3940        [(#REM) FIXME
  • _plugins_/pdfjs/pdfjs.js.html

    r58441 r58708  
    11#CACHE{2*3600}
    22#HTTP_HEADER{Content-Type: text/javascript; charset=#CHARSET}
    3 
     3[(#REM) correspond au fichier web/viewer.js]
    44
    55/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     
    325325        var pdfOpenParams = PDFView.getAnchorUrl('#page=' + pageNumber);
    326326        var destKind = dest[1];
    327         if ('name' in destKind && destKind.name == 'XYZ') {
     327        if (typeof destKind === 'object' && 'name' in destKind &&
     328            destKind.name == 'XYZ') {
    328329          var scale = (dest[4] || this.currentScale);
    329330          pdfOpenParams += '&zoom=' + (scale * 100);
     
    509510
    510511    if (hash.indexOf('=') >= 0) {
    511       // parsing query string
    512       var paramsPairs = hash.split('&');
    513       var params = {};
    514       for (var i = 0; i < paramsPairs.length; ++i) {
    515         var paramPair = paramsPairs[i].split('=');
    516         params[paramPair[0]] = paramPair[1];
    517       }
     512      var params = PDFView.parseQueryString(hash);
    518513      // borrowing syntax from "Parameters for Opening PDF Files"
    519514      if ('nameddest' in params) {
     
    627622
    628623    return visibleThumbs;
     624  },
     625
     626  // Helper function to parse query string (e.g. ?param1=value&parm2=...).
     627  parseQueryString: function pdfViewParseQueryString(query) {
     628    var parts = query.split('&');
     629    var params = {};
     630    for (var i = 0, ii = parts.length; i < parts.length; ++i) {
     631      var param = parts[i].split('=');
     632      var key = param[0];
     633      var value = param.length > 1 ? param[1] : null;
     634      params[unescape(key)] = unescape(value);
     635    }
     636    return params;
    629637  }
    630638};
     
    10881096    var fontHeight = fontSize * text.geom.vScale;
    10891097    textDiv.dataset.canvasWidth = text.canvasWidth * text.geom.hScale;
     1098    textDiv.dataset.fontName = fontName;
    10901099
    10911100    textDiv.style.fontSize = fontHeight + 'px';
     
    10991108
    11001109window.addEventListener('load', function webViewerLoad(evt) {
    1101   var params = document.location.search.substring(1).split('&');
    1102   for (var i = 0; i < params.length; i++) {
    1103     var param = params[i].split('=');
    1104     params[unescape(param[0])] = unescape(param[1]);
    1105   }
    1106 
    1107   var scale = ('scale' in params) ? params.scale : 0;
     1110  var params = PDFView.parseQueryString(document.location.search.substring(1));
     1111
    11081112  var file = PDFJS.isFirefoxExtension ?
    11091113              window.location.toString() : params.file || kDefaultURL;
    1110   PDFView.open(file, parseFloat(scale));
     1114  PDFView.open(file, 0);
    11111115
    11121116  if (PDFJS.isFirefoxExtension || !window.File || !window.FileReader ||
     
    11161120                              .setAttribute('hidden', 'true');
    11171121  } else {
    1118     // document.getElementById('fileInput').value = null;        // on desactive l'upload
    1119   }
    1120 
    1121   if ('disableWorker' in params)
    1122     PDFJS.disableWorker = (params['disableWorker'] === 'true');
    1123 
    1124   if ('disableTextLayer' in params)
    1125     PDFJS.disableTextLayer = (params['disableTextLayer'] === 'true');
     1122    // document.getElementById('fileInput').value = null;      // erational: desactiver dans le plugin spip
     1123  }
     1124
     1125  // Special debugging flags in the hash section of the URL.
     1126  var hash = document.location.hash.substring(1);
     1127  var hashParams = PDFView.parseQueryString(hash);
     1128
     1129  if ('disableWorker' in hashParams)
     1130    PDFJS.disableWorker = (hashParams['disableWorker'] === 'true');
     1131
     1132  if ('disableTextLayer' in hashParams)
     1133    PDFJS.disableTextLayer = (hashParams['disableTextLayer'] === 'true');
     1134
     1135  if ('pdfBug' in hashParams) {
     1136    PDFJS.pdfBug = true;
     1137    var pdfBug = hashParams['pdfBug'];
     1138    var all = false, enabled = [];
     1139    if (pdfBug === 'all')
     1140      all = true;
     1141    else
     1142      enabled = pdfBug.split(',');
     1143    var debugTools = PDFBug.tools;
     1144    for (var i = 0; i < debugTools.length; ++i) {
     1145      var tool = debugTools[i];
     1146      if (all || enabled.indexOf(tool.id) !== -1)
     1147        tool.enabled = true;
     1148    }
     1149    PDFBug.init();
     1150  }
    11261151
    11271152  var sidebarScrollView = document.getElementById('sidebarScrollView');
     
    12021227  store.set('scrollLeft', Math.round(topLeft.x));
    12031228  store.set('scrollTop', Math.round(topLeft.y));
    1204   var href = PDFView.getAnchorUrl(pdfOpenParams);
    1205   //document.getElementById('viewBookmark').href = href;    // on a desactive les bookmarks
     1229  var href = PDFView.getAnchorUrl(pdfOpenParams);           
     1230  // document.getElementById('viewBookmark').href = href;    // erational: desactiver dans le plugin spip
    12061231}
    12071232
  • _plugins_/pdfjs/src/canvas.js

    r58441 r58708  
    270270
    271271    executeIRQueue: function canvasGraphicsExecuteIRQueue(codeIR,
    272                                   executionStartIdx, continueCallback) {
     272                                  executionStartIdx, continueCallback,
     273                                  stepper) {
    273274      var argsArray = codeIR.argsArray;
    274275      var fnArray = codeIR.fnArray;
     
    289290
    290291      while (true) {
     292        if (stepper && i === stepper.nextBreakPoint) {
     293          stepper.breakIt(i, continueCallback);
     294          return i;
     295        }
     296
    291297        fnName = fnArray[i];
    292298
  • _plugins_/pdfjs/src/core.js

    r58441 r58708  
    5858}
    5959globalScope.PDFJS.getPdf = getPdf;
     60globalScope.PDFJS.pdfBug = false;
    6061
    6162var Page = (function PageClosure() {
     
    105106    },
    106107    get view() {
    107       var obj = this.inheritPageProp('CropBox');
     108      var cropBox = this.inheritPageProp('CropBox');
    108109      var view = {
    109110        x: 0,
     
    112113        height: this.height
    113114      };
     115      if (!isArray(cropBox) || cropBox.length !== 4)
     116        return shadow(this, 'view', view);
     117
    114118      var mediaBox = this.mediaBox;
    115119      var offsetX = mediaBox[0], offsetY = mediaBox[1];
    116       if (isArray(obj) && obj.length == 4) {
    117         var tl = this.rotatePoint(obj[0] - offsetX, obj[1] - offsetY);
    118         var br = this.rotatePoint(obj[2] - offsetX, obj[3] - offsetY);
    119         view.x = Math.min(tl.x, br.x);
    120         view.y = Math.min(tl.y, br.y);
    121         view.width = Math.abs(tl.x - br.x);
    122         view.height = Math.abs(tl.y - br.y);
    123       }
    124 
    125       return shadow(this, 'cropBox', view);
     120
     121      // From the spec, 6th ed., p.963:
     122      // "The crop, bleed, trim, and art boxes should not ordinarily
     123      // extend beyond the boundaries of the media box. If they do, they are
     124      // effectively reduced to their intersection with the media box."
     125      cropBox = Util.intersect(cropBox, mediaBox);
     126      if (!cropBox)
     127        return shadow(this, 'view', view);
     128
     129      var tl = this.rotatePoint(cropBox[0] - offsetX, cropBox[1] - offsetY);
     130      var br = this.rotatePoint(cropBox[2] - offsetX, cropBox[3] - offsetY);
     131      view.x = Math.min(tl.x, br.x);
     132      view.y = Math.min(tl.y, br.y);
     133      view.width = Math.abs(tl.x - br.x);
     134      view.height = Math.abs(tl.y - br.y);
     135
     136      return shadow(this, 'view', view);
    126137    },
    127138    get annotations() {
     
    245256      var length = this.IRQueue.fnArray.length;
    246257      var IRQueue = this.IRQueue;
     258      var stepper = null;
     259      if (PDFJS.pdfBug && StepperManager.enabled) {
     260        stepper = StepperManager.create(this.pageNumber);
     261        stepper.init(IRQueue);
     262        stepper.nextBreakPoint = stepper.getNextBreakPoint();
     263      }
    247264
    248265      var self = this;
    249266      function next() {
    250         startIdx = gfx.executeIRQueue(IRQueue, startIdx, next);
     267        startIdx = gfx.executeIRQueue(IRQueue, startIdx, next, stepper);
    251268        if (startIdx == length) {
    252269          self.stats.render = Date.now();
  • _plugins_/pdfjs/src/fonts.js

    r58441 r58708  
    22262226      styleSheet.insertRule(rule, styleSheet.cssRules.length);
    22272227
     2228      if (PDFJS.pdfBug && FontInspector.enabled)
     2229        FontInspector.fontAdded(this, url);
     2230
    22282231      return rule;
    22292232    },
  • _plugins_/pdfjs/src/stream.js

    r58441 r58708  
    624624    var bufferLength = this.bufferLength;
    625625    var buffer = this.ensureBuffer(bufferLength + rowBytes);
    626     var currentRow = buffer.subarray(bufferLength, bufferLength + rowBytes);
    627626
    628627    var bits = this.bits;
     
    633632    var inbuf = 0, outbuf = 0;
    634633    var inbits = 0, outbits = 0;
     634    var pos = bufferLength;
    635635
    636636    if (bits === 1) {
     
    640640        // bitwise addition is exclusive or
    641641        // first shift inbuf and then add
    642         currentRow[i] = (c ^ (inbuf >> colors)) & 0xFF;
     642        buffer[pos++] = (c ^ (inbuf >> colors)) & 0xFF;
    643643        // truncate inbuf (assumes colors < 16)
    644644        inbuf &= 0xFFFF;
     
    646646    } else if (bits === 8) {
    647647      for (var i = 0; i < colors; ++i)
    648         currentRow[i] = rawBytes[i];
    649       for (; i < rowBytes; ++i)
    650         currentRow[i] = currentRow[i - colors] + rawBytes[i];
     648        buffer[pos++] = rawBytes[i];
     649      for (; i < rowBytes; ++i) {
     650        buffer[pos] = buffer[pos - colors] + rawBytes[i];
     651        pos++;
     652      }
    651653    } else {
    652654      var compArray = new Uint8Array(colors + 1);
    653655      var bitMask = (1 << bits) - 1;
    654       var j = 0, k = 0;
     656      var j = 0, k = bufferLength;
    655657      var columns = this.columns;
    656658      for (var i = 0; i < columns; ++i) {
     
    666668          outbits += bits;
    667669          if (outbits >= 8) {
    668             currentRow[k++] = (outbuf >> (outbits - 8)) & 0xFF;
     670            buffer[k++] = (outbuf >> (outbits - 8)) & 0xFF;
    669671            outbits -= 8;
    670672          }
     
    672674      }
    673675      if (outbits > 0) {
    674         currentRow[k++] = (outbuf << (8 - outbits)) +
     676        buffer[k++] = (outbuf << (8 - outbits)) +
    675677        (inbuf & ((1 << (8 - outbits)) - 1));
    676678      }
     
    691693    var buffer = this.ensureBuffer(bufferLength + rowBytes);
    692694
    693     var currentRow = buffer.subarray(bufferLength, bufferLength + rowBytes);
    694695    var prevRow = buffer.subarray(bufferLength - rowBytes, bufferLength);
    695696    if (prevRow.length == 0)
    696697      prevRow = new Uint8Array(rowBytes);
    697698
     699    var j = bufferLength;
    698700    switch (predictor) {
    699701      case 0:
    700702        for (var i = 0; i < rowBytes; ++i)
    701           currentRow[i] = rawBytes[i];
     703          buffer[j++] = rawBytes[i];
    702704        break;
    703705      case 1:
    704706        for (var i = 0; i < pixBytes; ++i)
    705           currentRow[i] = rawBytes[i];
    706         for (; i < rowBytes; ++i)
    707           currentRow[i] = (currentRow[i - pixBytes] + rawBytes[i]) & 0xFF;
     707          buffer[j++] = rawBytes[i];
     708        for (; i < rowBytes; ++i) {
     709          buffer[j] = (buffer[j - pixBytes] + rawBytes[i]) & 0xFF;
     710          j++;
     711        }
    708712        break;
    709713      case 2:
    710714        for (var i = 0; i < rowBytes; ++i)
    711           currentRow[i] = (prevRow[i] + rawBytes[i]) & 0xFF;
     715          buffer[j++] = (prevRow[i] + rawBytes[i]) & 0xFF;
    712716        break;
    713717      case 3:
    714718        for (var i = 0; i < pixBytes; ++i)
    715           currentRow[i] = (prevRow[i] >> 1) + rawBytes[i];
     719          buffer[j++] = (prevRow[i] >> 1) + rawBytes[i];
    716720        for (; i < rowBytes; ++i) {
    717           currentRow[i] = (((prevRow[i] + currentRow[i - pixBytes]) >> 1) +
     721          buffer[j] = (((prevRow[i] + buffer[j - pixBytes]) >> 1) +
    718722                           rawBytes[i]) & 0xFF;
     723          j++;
    719724        }
    720725        break;
     
    725730          var up = prevRow[i];
    726731          var c = rawBytes[i];
    727           currentRow[i] = up + c;
     732          buffer[j++] = up + c;
    728733        }
    729734        for (; i < rowBytes; ++i) {
    730735          var up = prevRow[i];
    731736          var upLeft = prevRow[i - pixBytes];
    732           var left = currentRow[i - pixBytes];
     737          var left = buffer[j - pixBytes];
    733738          var p = left + up - upLeft;
    734739
     
    745750          var c = rawBytes[i];
    746751          if (pa <= pb && pa <= pc)
    747             currentRow[i] = left + c;
     752            buffer[j++] = left + c;
    748753          else if (pb <= pc)
    749             currentRow[i] = up + c;
     754            buffer[j++] = up + c;
    750755          else
    751             currentRow[i] = upLeft + c;
     756            buffer[j++] = upLeft + c;
    752757        }
    753758        break;
  • _plugins_/pdfjs/src/util.js

    r58441 r58708  
    110110      m[6] * v[0] + m[7] * v[1] + m[8] * v[2]
    111111    ];
     112  }
     113
     114  // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)
     115  // For coordinate systems whose origin lies in the bottom-left, this
     116  // means normalization to (BL,TR) ordering. For systems with origin in the
     117  // top-left, this means (TL,BR) ordering.
     118  Util.normalizeRect = function normalizeRect(rect) {
     119    var r = rect.slice(0); // clone rect
     120    if (rect[0] > rect[2]) {
     121      r[0] = rect[2];
     122      r[2] = rect[0];
     123    }
     124    if (rect[1] > rect[3]) {
     125      r[1] = rect[3];
     126      r[3] = rect[1];
     127    }
     128    return r;
     129  }
     130
     131  // Returns a rectangle [x1, y1, x2, y2] corresponding to the
     132  // intersection of rect1 and rect2. If no intersection, returns 'false'
     133  // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]
     134  Util.intersect = function intersect(rect1, rect2) {
     135    function compare(a, b) {
     136      return a - b;
     137    };
     138
     139    // Order points along the axes
     140    var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare),
     141        orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare),
     142        result = [];
     143
     144    rect1 = Util.normalizeRect(rect1);
     145    rect2 = Util.normalizeRect(rect2);
     146
     147    // X: first and second points belong to different rectangles?
     148    if ((orderedX[0] === rect1[0] && orderedX[1] === rect2[0]) ||
     149        (orderedX[0] === rect2[0] && orderedX[1] === rect1[0])) {
     150      // Intersection must be between second and third points
     151      result[0] = orderedX[1];
     152      result[2] = orderedX[2];
     153    } else {
     154      return false;
     155    }
     156
     157    // Y: first and second points belong to different rectangles?
     158    if ((orderedY[0] === rect1[1] && orderedY[1] === rect2[1]) ||
     159        (orderedY[0] === rect2[1] && orderedY[1] === rect1[1])) {
     160      // Intersection must be between second and third points
     161      result[1] = orderedY[1];
     162      result[3] = orderedY[2];
     163    } else {
     164      return false;
     165    }
     166
     167    return result;
    112168  }
    113169
  • _plugins_/pdfjs/src/worker_loader.js

    r58441 r58708  
    1212  'function.js',
    1313  'charsets.js',
    14   'cidmaps.js', 
     14  'cidmaps.js',
    1515  'colorspace.js',
    1616  'crypto.js',
     
    1818  'fonts.js',
    1919  'glyphlist.js',
    20   'image.js', 
     20  'image.js',
    2121  'metrics.js',
    2222  'parser.js',
    2323  'pattern.js',
    24   'stream.js', 
     24  'stream.js',
    2525  'worker.js',
    26   //'../external/jpgjs/jpg.js',
    27   'jpx.js' 
     26  // '../external/jpgjs/jpg.js',
     27  'jpx.js'
    2828];
    2929
     
    3232  importScripts(files[i]);
    3333}
    34 
Note: See TracChangeset for help on using the changeset viewer.