/** * implement Object.create for browsers without native support */ if (typeof Object.create !== 'function') { Object.create = function (o) { function F() {} F.prototype = o; return new F(); }; } /** * implement Object.keys for browsers without native support */ if (typeof Object.keys !== 'function') { Object.keys = function(o) { if (o !== Object(o)) { throw new TypeError('Object.keys called on a non-object'); } var k=[],p; for (p in o) { if (Object.prototype.hasOwnProperty.call(o,p)) { k.push(p); } } return k; }; } /** * implement Array.filter for browsers without native support */ if (!Array.prototype.filter) { Array.prototype.filter = function(fun /*, thisp*/) { var len = this.length >>> 0; if (typeof fun !== "function"){ throw new TypeError(); } var res = []; var thisp = arguments[1]; for (var i = 0; i < len; i++) { if (i in this) { var val = this[i]; // in case fun mutates this if (fun.call(thisp, val, i, this)) res.push(val); } } return res; }; } /** * implement Array.indexOf for browsers without native support */ if (!Array.prototype.indexOf){ Array.prototype.indexOf = function(elt /*, from*/) { var len = this.length; var from = Number(arguments[1]) || 0; from = (from < 0) ? Math.ceil(from) : Math.floor(from); if (from < 0){ from += len; } for (; from < len; from++) { if (from in this && this[from] === elt){ return from; } } return -1; }; } /** * implement Array.map for browsers without native support */ if (!Array.prototype.map){ Array.prototype.map = function(fun /*, thisp */){ "use strict"; if (this === void 0 || this === null){ throw new TypeError(); } var t = Object(this); var len = t.length >>> 0; if (typeof fun !== "function"){ throw new TypeError(); } var res = new Array(len); var thisp = arguments[1]; for (var i = 0; i < len; i++){ if (i in t){ res[i] = fun.call(thisp, t[i], i, t); } } return res; }; } //https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/bind if (!Function.prototype.bind) { Function.prototype.bind = function (oThis) { if (typeof this !== "function") { // closest thing possible to the ECMAScript 5 internal IsCallable function throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable"); } var aArgs = Array.prototype.slice.call(arguments, 1), fToBind = this, fNOP = function () {}, fBound = function () { return fToBind.apply(this instanceof fNOP && oThis ? this : oThis, aArgs.concat(Array.prototype.slice.call(arguments))); }; fNOP.prototype = this.prototype; fBound.prototype = new fNOP(); return fBound; }; } //https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/Trim if(!String.prototype.trim) { String.prototype.trim = function () { return this.replace(/^\s+|\s+$/g,''); }; } // Older Firefoxes doesn't support outerHTML // From http://stackoverflow.com/questions/1700870/how-do-i-do-outerhtml-in-firefox#answer-3819589 function outerHTML(node){ // In newer browsers use the internal property otherwise build a wrapper. return node.outerHTML || ( function(n){ var div = document.createElement('div'), h; div.appendChild( n.cloneNode(true) ); h = div.innerHTML; div = null; return h; })(node); } fop-0_14_0_regions'>fop-0_14_0_regions Apache XML Graphics FOP: https://github.com/apache/xmlgraphics-fopwww-data
aboutsummaryrefslogtreecommitdiffstats
path: root/test/xml/bugtests/border.fo
blob: 01ea34c245650ff1ba2c060229a6735ccc43781c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?xml version="1.0" encoding="UTF-8"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
  <fo:layout-master-set>
      <fo:simple-page-master master-name="simplePM"
                    page-height="25cm"
                    page-width="20cm"
                    margin-top="1cm"
                    margin-bottom="1cm"
                    margin-left="1.5cm"
                    margin-right="1.5cm">
        <fo:region-body margin-top="3cm" margin-bottom="3cm"/>
        <fo:region-before extent="2.5cm"/>
        <fo:region-after extent="2.5cm"/>
      </fo:simple-page-master>
  </fo:layout-master-set>

  <fo:page-sequence master-reference="simplePM">
      <fo:flow flow-name="xsl-region-body">
      <fo:block>
        This is a simple fo block.
      </fo:block>

      <fo:block space-before.optimum="1cm" border-color="blue" border-style="solid" border-width="2pt">
        This is a simple fo block with borders.
      </fo:block>

      <fo:block space-before.optimum="1cm"
          border-left-color="blue" border-left-style="solid" border-left-width="2pt"
          border-right-color="blue" border-right-style="solid" border-right-width="2pt"
          border-top-color="blue" border-top-style="solid" border-top-width="2pt"
          border-bottom-color="blue" border-bottom-style="solid" border-bottom-width="2pt">
        This is a simple fo block with borders.
      </fo:block>

      <fo:block space-before.optimum="1cm" border-left-color="black" border-left-style="solid" border-left-width="2pt"
          border-right-color="black" border-right-style="dotted" border-right-width="1cm"
          border-top-color="black" border-top-style="dashed" border-top-width="5pt"
          border-bottom-color="black" border-bottom-style="double" border-bottom-width="1in">
        This is a simple fo block with different borders viz;
        border-left-color="black"
        border-left-style="solid"
        border-left-width="2pt"
        border-right-color="black"
        border-right-style="dotted"
        border-right-width="1cm"
        border-top-color="black"
        border-top-style="dashed"
        border-top-width="5pt"
        border-bottom-color="black"
        border-bottom-style="double"
        border-bottom-width="1in"
      </fo:block>

      <fo:block space-before.optimum="1cm"
        border-top="2pt solid blue"
        border-bottom="2pt solid blue"
        border-left="2pt solid blue"
        border-right="2pt solid blue">
        This is a simple fo block with borders.
      </fo:block>

      <fo:block space-before.optimum="1cm"
        border-top="2pt || solid || blue"
        border-bottom="2pt || solid || blue"
        border-left="2pt || solid || blue"
        border-right="2pt || solid || blue">
        This is a simple fo block with borders.
      </fo:block>
    </fo:flow>
  </fo:page-sequence>
</fo:root>