pdfbox-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From msahy...@apache.org
Subject [02/14] pdfbox-docs git commit: PDFBOX-3030: add content to pdfbox-docs
Date Fri, 30 Oct 2015 10:45:45 GMT
http://git-wip-us.apache.org/repos/asf/pdfbox-docs/blob/78a43732/content/bootstrap/js/bootstrap.min.js
----------------------------------------------------------------------
diff --git a/content/bootstrap/js/bootstrap.min.js b/content/bootstrap/js/bootstrap.min.js
new file mode 100644
index 0000000..d839865
--- /dev/null
+++ b/content/bootstrap/js/bootstrap.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap v3.3.1 (http://getbootstrap.com)
+ * Copyright 2011-2014 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply
 (this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.1",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict"
 ;function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.1",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$ele
 ment.hasClass("active")).trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active"));a&&this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=thi
 s.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.1",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".it
 em"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c="prev"==a?-1:1,d=this.getItemIndex(b),e=(d+c)%this.$items.length;return this.$items.eq(e)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"
 ==b?"left":"right",i="next"==b?"first":"last",j=this;if(!f.length){if(!this.options.wrap)return;f=this.$element.find(".item")[i]()}if(f.hasClass("active"))return this.sliding=!1;var k=f[0],l=a.Event("slide.bs.carousel",{relatedTarget:k,direction:h});if(this.$element.trigger(l),!l.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var m=a(this.$indicators.children()[this.getItemIndex(f)]);m&&m.addClass("active")}var n=a.Event("slid.bs.carousel",{relatedTarget:k,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),j.sliding=!1,setTimeout(function(){j.$element.trigger(n)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trig
 ger(n)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&"show"==b&&(f.toggle=!1),e||c.
 data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a(this.options.trigger).filter('[href="#'+b.id+'"], [data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.1",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0,trigger:'[data-toggle="collapse"]'},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.find("> .panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.di
 mension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transit
 ioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=
 f.data("bs.collapse"),h=g?"toggle":a.extend({},e.data(),{trigger:this});c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){b&&3===b.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=c(d),f={relatedTarget:this};e.hasClass("open")&&(e.trigger(b=a.Event("hide.bs.dropdown",f)),b.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger("hidden.bs.dropdown",f)))}))}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.1",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart
 "in document.documentElement&&!f.closest(".navbar-nav").length&&a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!1}},g.prototype.keydown=function(b){if(/(38|40|27|32)/.test(b.which)&&!/input|textarea/i.test(b.target.tagName)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var e=c(d),g=e.hasClass("open");if(!g&&27!=b.which||g&&27==b.which)return 27==b.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.divider):visible a",i=e.find('[role="menu"]'+h+', [role="listbox"]'+h);if(i.length){var j=i.index(b.target);38==b.which&&j>0&&j--,40==b.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){
 return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",'[role="menu"]',g.prototype.keydown).on("keydown.bs.dropdown.data-api",'[role="listbox"]',g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$backdrop=this.isShown=null,this.scrollbarWidth=0,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.1",c.TRANSITION_DURATI
 ON=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.options.backdrop&&d.adjustBackdrop(),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in").attr("aria-hidden",!1),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$element.find(".modal-dialog").one("bsTransitionEnd",function(){d.$element.trigger("focus").trigge
 r(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off
 ("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a('<div class="modal-backdrop '+e+'" />').prependTo(this.$element).on("click.dismiss.bs.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("
 bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.options.backdrop&&this.adjustBackdrop(),this.adjustDialog()},c.prototype.adjustBackdrop=function(){this.$backdrop.css("height",0).css("height",this.$element[0].scrollHeight)},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){this.bodyIsOverflowing=document.body.
 scrollHeight>document.documentElement.clientHeight,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right","")},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevente
 d()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b,g=f&&f.selector;(e||"destroy"!=b)&&(g?(e||d.data("bs.tooltip",e={}),e[g]||(e[g]=new c(this,f))):e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};c.VERSION="3.3.1",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport
 &&a(this.options.viewport.selector||this.options.viewport);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter
 =function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c&&c.$tip&&c.$tip.is(":visible")?void(c.hoverState="in"):(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.
 contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.options.container?a(this.options.container):this.$element.parent(),p=this.getPosition(o);h="bottom"==h&&k.bottom+m>p.bottom?"top":"top"==h&&k.top-m<p.top?"bottom":"right"==h&&k.right+l>p.width?"left":"left"==h&&k.left-l<p.left?"right":h,f.removeClass(n).addClass(h)}var q=this
 .getCalculatedOffset(h,k,l,m);this.applyPlacement(q,h);var r=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",r).emulateTransitionEnd(c.TRANSITION_DURATION):r()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top=b.top+g,b.left=b.left+h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arr
 ow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=this.tip(),g=a.Event("hide.bs."+this.type);return this.$element.trigger(g),g.isDefaultPrevented()?void 0:(f.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d=
 "BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=d?{top:0,left:0}:b.offset(),g={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},h=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,g,h,f)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.w
 idth&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$elemen
 t.off("."+a.type).removeData("bs."+a.type)})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b,g=f&&f.selector;(e||"destroy"!=b)&&(g?(e||d.data("bs.popover",e={}),e[g]||(e[g]=new c(this,f))):e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.1",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.pro
 totype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},c.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){var e=a.proxy(this.process
 ,this);this.$body=a("body"),this.$scrollElement=a(a(c).is("body")?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",e),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.1",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b="offset",c=0;a.isWindow(this.$scrollElement[0])||(b="position",c=this.$scrollElement.scrollTop()),this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight();var d=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")|
 |d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+c,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){d.offsets.push(this[0]),d.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selec
 tor).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.1",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var
  h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})
+})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use 
 strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.1",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=i?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(
 ){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=a("body").height();"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d
 =a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/pdfbox-docs/blob/78a43732/content/bootstrap/js/npm.js
----------------------------------------------------------------------
diff --git a/content/bootstrap/js/npm.js b/content/bootstrap/js/npm.js
new file mode 100644
index 0000000..bf6aa80
--- /dev/null
+++ b/content/bootstrap/js/npm.js
@@ -0,0 +1,13 @@
+// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.
+require('../../js/transition.js')
+require('../../js/alert.js')
+require('../../js/button.js')
+require('../../js/carousel.js')
+require('../../js/collapse.js')
+require('../../js/dropdown.js')
+require('../../js/modal.js')
+require('../../js/tooltip.js')
+require('../../js/popover.js')
+require('../../js/scrollspy.js')
+require('../../js/tab.js')
+require('../../js/affix.js')
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/pdfbox-docs/blob/78a43732/content/building.mdtext
----------------------------------------------------------------------
diff --git a/content/building.mdtext b/content/building.mdtext
new file mode 100644
index 0000000..bf1e4ef
--- /dev/null
+++ b/content/building.mdtext
@@ -0,0 +1,70 @@
+---
+layout: default
+title:  Building PDFBox
+---
+
+# Building from Source
+
+Building PDFBox from source is only necessary if you're wanting to contribute code to the PDFBox project. Most users should use the [binary releases](http://pdfbox.apache.org/download.cgi) instead.
+
+## Obtaining the Source
+
+You can obtain the latest source of PDFBox from our [SVN repo](http://pdfbox.apache.org/download.cgi) The current trunk is v2.0.0-SNAPSHOT. There is a seperate branch for the 1.8.x series. You can fetch the latest 2.0 trunk using Subversion:
+
+    svn checkout http://svn.apache.org/repos/asf/pdfbox/trunk/
+    cd trunk
+
+## Build dependencies
+
+### PDFBox 1.8
+
+- JDK 5 or 6
+-  [Maven 2](http://maven.apache.org/)
+
+### PDFBox 2.0
+
+- JDK 6+
+- Java Cryptography Extension (JCE) [see below]
+-  [Maven 2](http://maven.apache.org/)
+
+### Java Cryptography Extension (JCE)
+
+Building PDFBox 2.0 requires a JDK with "unlimited strength" cryptography, which requires extra files to be installed. For JDK 7, see [Java Cryptography Extension (JCE)](http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html). If these files are not installed, building PDFBox will fail the following test:
+
+    TestPublicKeyEncryption.setUp:70 JCE unlimited strength jurisdiction policy files are not installed
+    
+## Building with Maven
+
+In the root directory of PDFBox:
+
+    mvn clean install
+
+---
+
+## Building with Ant (Deprecated, removed in 2.0.0)
+
+The old Ant build is still available, and can be used especially for
+building .NET binaries with IKVM:
+
+1.  Install [ANT](http://ant.apache.org/). PDFBox currently uses 1.6.2
+    but other versions probably work as well.
+2.  (optional) Setup IKVM, if you want to build the .NET DLL version of
+    PDFBox.
+    1.  [IKVM](http://www.ikvm.net/) binaries
+    2.  In the build.properties, set the ikvm.dir property:\
+         `ikvm.dir=C:\\javalib\\ikvm-12-07-2004\\ikvm`
+
+3.  Run "`ant`" from the root PDFBox directory. This will create the
+    .zip package distribution. See the build file for other ant targets.
+
+NOTE: If you want to run PDFBox from an IDE them you will need to add
+the 'Resources' directory to the project classpath in your IDE.
+
+### Dependencies for Ant Builds
+
+The above instructions expect that you're using [Maven](http://maven.apache.org/) or another build tool like [Ivy](http://ant.apache.org/ivy/) that supports Maven dependencies.
+If you instead use tools like [Ant](http://ant.apache.org/) where you need to explicitly include all the required library jars in your application, you'll need to do
+something different.
+
+The easiest approach is to run ``mvn dependency:copy-dependencies`` inside the pdfbox directory of the latest PDFBox source release. This will copy all the required and optional
+libraries discussed above into the pdfbox/target/dependencies directory. You can then simply copy all the libraries you need from this directory to your application.

http://git-wip-us.apache.org/repos/asf/pdfbox-docs/blob/78a43732/content/codingconventions.mdtext
----------------------------------------------------------------------
diff --git a/content/codingconventions.mdtext b/content/codingconventions.mdtext
new file mode 100644
index 0000000..280b571
--- /dev/null
+++ b/content/codingconventions.mdtext
@@ -0,0 +1,128 @@
+---
+layout: default
+title:  Coding Conventions
+---
+
+# Coding Conventions
+
+Over the years the PDFBox project has come to adopt a number of coding conventions. These are not always followed in old code but new code should try to follow these rules where possible.
+
+### Formatting
+
+- Braces go on their own line.
+
+- Always use braces with control flow statements.
+
+- No lines longer than 100 characters, including JavaDoc.
+
+- Wrapped lines should use either an indent of 4 or 8 characters or align with the expression at the same level on the previous line.
+
+- Wrapped lines should be broken after operators, not before.
+
+- Prefer aligned wrapped lines.
+
+- Prefer aligned wrapped parameter lists.
+
+### Whitespace
+
+- Four spaces for indents, no tabs.
+
+- Do not use spaces around parenthesis.
+
+- Use spaces after control flow keywords.
+
+- Prefer using blank lines to separate logical blocks of code, but do not be excessive.
+
+- Prefer not following casts with a blank space.
+
+### Structure
+
+- Do not use package imports (e.g. `import java.util.*`)
+
+- Static fields and methods must appear at the top of a class, before any other code.
+
+- Within a class, definitions should be ordered as follows:
+
+    Class (static) variables  
+    Instance variables  
+    Constructors  
+    Methods  
+
+### JavaDoc
+
+- Public and protected methods and fields must have JavaDoc.
+
+- Don't use `@version` tags.
+
+- Don't use `@since` tags.
+
+- Don't include your e-mail address in `@author` tags.
+
+- You may omit `@return` tags for getters as long as you include a summary which begins with the word "Returns".
+
+- Private methods do not require JavaDoc but may have partial JavaDoc if it adds valuable information.
+
+### Comments
+
+- Only use line comments within code, never block comments.
+
+- Prefer comments on their own line, rather than trailing, unless the latter is more readable.
+
+- Prefix line comments by a space `// like this`.
+
+### Variables
+
+- Prefer initializing variables when they are declared, rather than C-style declaration before use.
+
+- Always use final fields when possible.
+
+### Control Flow
+
+- Prefer multiple return statements over additional control flow logic.
+
+- Prefer switch statements over multi-clause if-then statements.
+
+### API Design
+
+- Give variables and methods meaningful names. Keep these short but don't use abbreviations. Prefer using the same terminology as the PDF spec.
+
+- Prefer final classes and final protected methods for non-final public classes, this reduces the surface area of the public API.
+
+- Avoid non-final protected variables in public classes. Prefer protected getters over protected variables when protected fields are necessery in public classes.
+
+- Minimize the API. Don't make everything public just because you can.
+
+- Don't expose implementation details unless there is a clear need: allowing subclassing means that the behaviour of protected methods becomes part of the contract of the public AP.
+
+- Avoid unnecesary abstraction. While you're encouraged to avoid brittle designs, it's unlikey that an API designed for "future use" will have the correct API without any code which actually uses it.
+ 
+### Example
+
+Here's an example of PDFBox's formatting style:
+
+    public class Foo extends Bar
+    {
+        public static void main(String args[])
+        {
+            try
+            {
+                for (int i = 0; i < args.length; i++)
+                {
+                    System.out.println(Integer.parseInt(args[i]));
+                }
+            }
+            catch (NumberFormatException e)
+            {
+                e.printStackTrace();
+            }
+        }
+    }
+
+## Eclipse Formatter
+
+Eclipse users may download this preferences file: pdfbox-eclipse-formatter.xml and import this into Eclipse. 
+(Window->Preferences, go to Java->Code Style->Formatter and click "Import...").
+Once you have done this you can reformat your code by using Source->Format (Ctrl+Shift+F).
+
+Also note that Eclipse will automatically format your import statements appropriately when 
+you invoke Source -> Organize Imports (Ctrl+Shift+O).

http://git-wip-us.apache.org/repos/asf/pdfbox-docs/blob/78a43732/content/css/pygments-default.css
----------------------------------------------------------------------
diff --git a/content/css/pygments-default.css b/content/css/pygments-default.css
new file mode 100644
index 0000000..67e6ea3
--- /dev/null
+++ b/content/css/pygments-default.css
@@ -0,0 +1,61 @@
+.hll { background-color: #ffffcc }
+.c { color: #408080; font-style: italic } /* Comment */
+.err { border: 1px solid #FF0000 } /* Error */
+.k { color: #008000; font-weight: bold } /* Keyword */
+.o { color: #666666 } /* Operator */
+.cm { color: #408080; font-style: italic } /* Comment.Multiline */
+.cp { color: #BC7A00 } /* Comment.Preproc */
+.c1 { color: #408080; font-style: italic } /* Comment.Single */
+.cs { color: #408080; font-style: italic } /* Comment.Special */
+.gd { color: #A00000 } /* Generic.Deleted */
+.ge { font-style: italic } /* Generic.Emph */
+.gr { color: #FF0000 } /* Generic.Error */
+.gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.gi { color: #00A000 } /* Generic.Inserted */
+.go { color: #888888 } /* Generic.Output */
+.gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.gs { font-weight: bold } /* Generic.Strong */
+.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.gt { color: #0044DD } /* Generic.Traceback */
+.kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.kp { color: #008000 } /* Keyword.Pseudo */
+.kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.kt { color: #B00040 } /* Keyword.Type */
+.m { color: #666666 } /* Literal.Number */
+.s { color: #BA2121 } /* Literal.String */
+.na { color: #7D9029 } /* Name.Attribute */
+.nb { color: #008000 } /* Name.Builtin */
+.nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.no { color: #880000 } /* Name.Constant */
+.nd { color: #AA22FF } /* Name.Decorator */
+.ni { color: #999999; font-weight: bold } /* Name.Entity */
+.ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.nf { color: #0000FF } /* Name.Function */
+.nl { color: #A0A000 } /* Name.Label */
+.nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.nt { color: #008000; font-weight: bold } /* Name.Tag */
+.nv { color: #19177C } /* Name.Variable */
+.ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.w { color: #bbbbbb } /* Text.Whitespace */
+.mf { color: #666666 } /* Literal.Number.Float */
+.mh { color: #666666 } /* Literal.Number.Hex */
+.mi { color: #666666 } /* Literal.Number.Integer */
+.mo { color: #666666 } /* Literal.Number.Oct */
+.sb { color: #BA2121 } /* Literal.String.Backtick */
+.sc { color: #BA2121 } /* Literal.String.Char */
+.sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.s2 { color: #BA2121 } /* Literal.String.Double */
+.se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.sh { color: #BA2121 } /* Literal.String.Heredoc */
+.si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.sx { color: #008000 } /* Literal.String.Other */
+.sr { color: #BB6688 } /* Literal.String.Regex */
+.s1 { color: #BA2121 } /* Literal.String.Single */
+.ss { color: #19177C } /* Literal.String.Symbol */
+.bp { color: #008000 } /* Name.Builtin.Pseudo */
+.vc { color: #19177C } /* Name.Variable.Class */
+.vg { color: #19177C } /* Name.Variable.Global */
+.vi { color: #19177C } /* Name.Variable.Instance */
+.il { color: #666666 } /* Literal.Number.Integer.Long */

http://git-wip-us.apache.org/repos/asf/pdfbox-docs/blob/78a43732/content/css/pygments-friendly.css
----------------------------------------------------------------------
diff --git a/content/css/pygments-friendly.css b/content/css/pygments-friendly.css
new file mode 100644
index 0000000..23f09db
--- /dev/null
+++ b/content/css/pygments-friendly.css
@@ -0,0 +1,61 @@
+.hll { background-color: #ffffcc }
+.c { color: #60a0b0; font-style: italic } /* Comment */
+.err { border: 1px solid #FF0000 } /* Error */
+.k { color: #007020; font-weight: bold } /* Keyword */
+.o { color: #666666 } /* Operator */
+.cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */
+.cp { color: #007020 } /* Comment.Preproc */
+.c1 { color: #60a0b0; font-style: italic } /* Comment.Single */
+.cs { color: #60a0b0; background-color: #fff0f0 } /* Comment.Special */
+.gd { color: #A00000 } /* Generic.Deleted */
+.ge { font-style: italic } /* Generic.Emph */
+.gr { color: #FF0000 } /* Generic.Error */
+.gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.gi { color: #00A000 } /* Generic.Inserted */
+.go { color: #888888 } /* Generic.Output */
+.gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
+.gs { font-weight: bold } /* Generic.Strong */
+.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.gt { color: #0044DD } /* Generic.Traceback */
+.kc { color: #007020; font-weight: bold } /* Keyword.Constant */
+.kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
+.kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
+.kp { color: #007020 } /* Keyword.Pseudo */
+.kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
+.kt { color: #902000 } /* Keyword.Type */
+.m { color: #40a070 } /* Literal.Number */
+.s { color: #4070a0 } /* Literal.String */
+.na { color: #4070a0 } /* Name.Attribute */
+.nb { color: #007020 } /* Name.Builtin */
+.nc { color: #0e84b5; font-weight: bold } /* Name.Class */
+.no { color: #60add5 } /* Name.Constant */
+.nd { color: #555555; font-weight: bold } /* Name.Decorator */
+.ni { color: #d55537; font-weight: bold } /* Name.Entity */
+.ne { color: #007020 } /* Name.Exception */
+.nf { color: #06287e } /* Name.Function */
+.nl { color: #002070; font-weight: bold } /* Name.Label */
+.nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
+.nt { color: #062873; font-weight: bold } /* Name.Tag */
+.nv { color: #bb60d5 } /* Name.Variable */
+.ow { color: #007020; font-weight: bold } /* Operator.Word */
+.w { color: #bbbbbb } /* Text.Whitespace */
+.mf { color: #40a070 } /* Literal.Number.Float */
+.mh { color: #40a070 } /* Literal.Number.Hex */
+.mi { color: #40a070 } /* Literal.Number.Integer */
+.mo { color: #40a070 } /* Literal.Number.Oct */
+.sb { color: #4070a0 } /* Literal.String.Backtick */
+.sc { color: #4070a0 } /* Literal.String.Char */
+.sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
+.s2 { color: #4070a0 } /* Literal.String.Double */
+.se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
+.sh { color: #4070a0 } /* Literal.String.Heredoc */
+.si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
+.sx { color: #c65d09 } /* Literal.String.Other */
+.sr { color: #235388 } /* Literal.String.Regex */
+.s1 { color: #4070a0 } /* Literal.String.Single */
+.ss { color: #517918 } /* Literal.String.Symbol */
+.bp { color: #007020 } /* Name.Builtin.Pseudo */
+.vc { color: #bb60d5 } /* Name.Variable.Class */
+.vg { color: #bb60d5 } /* Name.Variable.Global */
+.vi { color: #bb60d5 } /* Name.Variable.Instance */
+.il { color: #40a070 } /* Literal.Number.Integer.Long */

http://git-wip-us.apache.org/repos/asf/pdfbox-docs/blob/78a43732/content/css/pygments-github.css
----------------------------------------------------------------------
diff --git a/content/css/pygments-github.css b/content/css/pygments-github.css
new file mode 100644
index 0000000..67fe210
--- /dev/null
+++ b/content/css/pygments-github.css
@@ -0,0 +1,61 @@
+.hll { background-color: #ffffcc }
+.c { color: #999988; font-style: italic } /* Comment */
+.err { color: #a61717; background-color: #e3d2d2 } /* Error */
+.k { color: #000000; font-weight: bold } /* Keyword */
+.o { color: #000000; font-weight: bold } /* Operator */
+.cm { color: #999988; font-style: italic } /* Comment.Multiline */
+.cp { color: #999999; font-weight: bold; font-style: italic } /* Comment.Preproc */
+.c1 { color: #999988; font-style: italic } /* Comment.Single */
+.cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
+.gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
+.ge { color: #000000; font-style: italic } /* Generic.Emph */
+.gr { color: #aa0000 } /* Generic.Error */
+.gh { color: #999999 } /* Generic.Heading */
+.gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
+.go { color: #888888 } /* Generic.Output */
+.gp { color: #555555 } /* Generic.Prompt */
+.gs { font-weight: bold } /* Generic.Strong */
+.gu { color: #aaaaaa } /* Generic.Subheading */
+.gt { color: #aa0000 } /* Generic.Traceback */
+.kc { color: #000000; font-weight: bold } /* Keyword.Constant */
+.kd { color: #000000; font-weight: bold } /* Keyword.Declaration */
+.kn { color: #000000; font-weight: bold } /* Keyword.Namespace */
+.kp { color: #000000; font-weight: bold } /* Keyword.Pseudo */
+.kr { color: #000000; font-weight: bold } /* Keyword.Reserved */
+.kt { color: #445588; font-weight: bold } /* Keyword.Type */
+.m { color: #009999 } /* Literal.Number */
+.s { color: #d01040 } /* Literal.String */
+.na { color: #008080 } /* Name.Attribute */
+.nb { color: #0086B3 } /* Name.Builtin */
+.nc { color: #445588; font-weight: bold } /* Name.Class */
+.no { color: #008080 } /* Name.Constant */
+.nd { color: #3c5d5d; font-weight: bold } /* Name.Decorator */
+.ni { color: #800080 } /* Name.Entity */
+.ne { color: #990000; font-weight: bold } /* Name.Exception */
+.nf { color: #990000; font-weight: bold } /* Name.Function */
+.nl { color: #990000; font-weight: bold } /* Name.Label */
+.nn { color: #555555 } /* Name.Namespace */
+.nt { color: #000080 } /* Name.Tag */
+.nv { color: #008080 } /* Name.Variable */
+.ow { color: #000000; font-weight: bold } /* Operator.Word */
+.w { color: #bbbbbb } /* Text.Whitespace */
+.mf { color: #009999 } /* Literal.Number.Float */
+.mh { color: #009999 } /* Literal.Number.Hex */
+.mi { color: #009999 } /* Literal.Number.Integer */
+.mo { color: #009999 } /* Literal.Number.Oct */
+.sb { color: #d01040 } /* Literal.String.Backtick */
+.sc { color: #d01040 } /* Literal.String.Char */
+.sd { color: #d01040 } /* Literal.String.Doc */
+.s2 { color: #d01040 } /* Literal.String.Double */
+.se { color: #d01040 } /* Literal.String.Escape */
+.sh { color: #d01040 } /* Literal.String.Heredoc */
+.si { color: #d01040 } /* Literal.String.Interpol */
+.sx { color: #d01040 } /* Literal.String.Other */
+.sr { color: #009926 } /* Literal.String.Regex */
+.s1 { color: #d01040 } /* Literal.String.Single */
+.ss { color: #990073 } /* Literal.String.Symbol */
+.bp { color: #999999 } /* Name.Builtin.Pseudo */
+.vc { color: #008080 } /* Name.Variable.Class */
+.vg { color: #008080 } /* Name.Variable.Global */
+.vi { color: #008080 } /* Name.Variable.Instance */
+.il { color: #009999 } /* Literal.Number.Integer.Long */
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/pdfbox-docs/blob/78a43732/content/css/site.css
----------------------------------------------------------------------
diff --git a/content/css/site.css b/content/css/site.css
new file mode 100644
index 0000000..a6c4a26
--- /dev/null
+++ b/content/css/site.css
@@ -0,0 +1,155 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements.  See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+/*
+ *  The follwing rules are in addition to the base bootstrap css
+ *  Some of the CSS is copied over from bootstrap as markdown, the primary
+ *  format used to add content, doesn't allow to classes to the elements
+ */
+
+body > .container {
+  min-width: 750px;
+  max-width: none !important;
+  padding-top: 20px;
+}
+
+/* Add some space around the pdfbox logo */
+.logo {
+    padding: 12px 0px;
+    width: 200px;
+}
+
+/* Styling for the copyright footer */
+.footer {
+    height: 150px;
+    margin-top: 70px;
+    padding: 30px 0;
+    color: #e8e8e8;
+    border-top: 1px solid #e5e5e5;
+    background: url("/images/footer.png") #3f3f3f;
+}
+
+/*
+ * Typography overwrites to bootstrap 
+ */
+
+/* headings */
+h1, h2, h3, h4, h5 {
+    font-family: "OpenSans", "Helvetica Neue", "Helvetica", Arial, Verdana, sans-serif;
+    font-weight: 300;
+}
+
+h1 {
+  margin-top: 0;
+}
+
+/* features list */
+h4 .oi {
+    position: relative;
+    top: 5px;
+    font-size: 24px;
+    margin-right: 8px;
+    color: #0088cc;
+}
+
+code, pre {
+    color: darkslategrey;
+}
+
+/* 
+ * Default styling for the tables copied over from bootstrap 
+ * to get basic styling for tables created through markdown 
+ */
+table {
+    width: 100%;
+}
+
+table th, table td {
+    padding: 8px;
+    vertical-align: top;
+    border-top: 1px solid #ddd;
+}
+
+table tr:nth-child(even) td, table tr.even td { 
+    background: #f9f9f9; 
+}
+
+/*
+ * Completed items on the "ideas" list.
+ */
+
+.complete {
+  text-decoration: line-through;
+  color: #bbb;
+ }
+
+/*
+ * Custom sidebar, replaces Bootstrap .nav with nested tree.
+ */
+
+.sidebar ul {
+    padding-left: 20px;
+}
+
+.sidebar, .sidebar > ul {
+    padding-left: 0;
+}
+
+.sidebar li {
+    list-style: none;
+}
+
+.sidebar li a {
+    display: block;
+    padding: .20em 15px;
+}
+
+.sidebar li a:hover, .sidebar li a:focus {
+    text-decoration: none;
+    background-color: #eee;
+}
+
+.sidebar-header {
+    font-size: 11px;
+    font-weight: bold;
+    line-height: 20px;
+    color: #999999;
+    text-transform: uppercase;
+}
+
+.sidebar li + .sidebar-header {
+    margin-top: 8px;
+}
+
+.sidebar .sidebar-node > a::before {
+  content: '\e034';
+  font-family: Icons;
+  font-size: 10px;
+  padding-right: 3px;
+}
+
+.sidebar li.sidebar-node > a {
+    padding-left: 5px;
+}
+
+.sidebar-node.collapsed > ul{
+  display: none;
+}
+
+.sidebar-node.collapsed > a::before {
+  content: '\e036';
+}

http://git-wip-us.apache.org/repos/asf/pdfbox-docs/blob/78a43732/content/doap_PDFBox.rdf
----------------------------------------------------------------------
diff --git a/content/doap_PDFBox.rdf b/content/doap_PDFBox.rdf
new file mode 100644
index 0000000..6e851b2
--- /dev/null
+++ b/content/doap_PDFBox.rdf
@@ -0,0 +1,214 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl"?>
+<rdf:RDF xml:lang="en"
+         xmlns="http://usefulinc.com/ns/doap#" 
+         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
+         xmlns:asfext="http://projects.apache.org/ns/asfext#"
+         xmlns:foaf="http://xmlns.com/foaf/0.1/">
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+   
+         http://www.apache.org/licenses/LICENSE-2.0
+   
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+  <Project rdf:about="http://pdfbox.apache.org">
+    <created>2010-12-19</created>
+    <license rdf:resource="http://usefulinc.com/doap/licenses/asl20" />
+    <name>Apache PDFBox</name>
+    <homepage rdf:resource="http://pdfbox.apache.org" />
+    <asfext:pmc rdf:resource="http://pdfbox.apache.org" />
+    <shortdesc>The Apache PDFBox library is an open source Java tool for working with PDF documents.</shortdesc>
+    <bug-database rdf:resource="https://issues.apache.org/jira/browse/PDFBOX" />
+    <mailing-list rdf:resource="http://pdfbox.apache.org/mailinglists.html" />
+    <download-page rdf:resource="http://pdfbox.apache.org/download.html" />
+    <programming-language>Java</programming-language>
+    <category rdf:resource="http://projects.apache.org/category/content" />
+    <category rdf:resource="http://projects.apache.org/category/library" />
+    <release>
+      <Version>
+        <name>Apache PDFBox</name>
+        <created>2015-07-23</created>
+        <revision>1.8.10</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>Apache PDFBox</name>
+        <created>2015-03-28</created>
+        <revision>1.8.9</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>Apache PDFBox</name>
+        <created>2014-12-13</created>
+        <revision>1.8.8</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>Apache PDFBox</name>
+        <created>2014-09-19</created>
+        <revision>1.8.7</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>Apache PDFBox</name>
+        <created>2014-06-22</created>
+        <revision>1.8.6</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>Apache PDFBox</name>
+        <created>2014-05-02</created>
+        <revision>1.8.5</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>Apache PDFBox</name>
+        <created>2014-01-31</created>
+        <revision>1.8.4</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>Apache PDFBox</name>
+        <created>2013-11-29</created>
+        <revision>1.8.3</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>Apache PDFBox</name>
+        <created>2013-06-02</created>
+        <revision>1.8.2</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>Apache PDFBox</name>
+        <created>2013-04-10</created>
+        <revision>1.8.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>Apache PDFBox</name>
+        <created>2013-03-23</created>
+        <revision>1.8.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>Apache PDFBox</name>
+        <created>2012-07-25</created>
+        <revision>1.7.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>Apache PDFBox</name>
+        <created>2012-05-29</created>
+        <revision>1.7.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>Apache PDFBox</name>
+        <created>2011-07-02</created>
+        <revision>1.6.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>Apache PDFBox</name>
+        <created>2011-03-03</created>
+        <revision>1.5.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>Apache PDFBox</name>
+        <created>2010-12-20</created>
+        <revision>1.4.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>Apache PDFBox</name>
+        <created>2010-10-26</created>
+        <revision>1.3.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>Apache PDFBox</name>
+        <created>2010-07-11</created>
+        <revision>1.2.1</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>Apache PDFBox</name>
+        <created>2010-06-29</created>
+        <revision>1.2.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>Apache PDFBox</name>
+        <created>2010-03-29</created>
+        <revision>1.1.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>Apache PDFBox</name>
+        <created>2010-02-15</created>
+        <revision>1.0.0</revision>
+      </Version>
+    </release>
+    <release>
+      <Version>
+        <name>Apache PDFBox (incubating)</name>
+        <created>2009-09-23</created>
+        <revision>0.8.0-incubator</revision>
+      </Version>
+    </release>
+    <repository>
+      <SVNRepository>
+        <location rdf:resource="http://svn.apache.org/repos/asf/pdfbox"/>
+        <browse rdf:resource="http://svn.apache.org/viewvc/pdfbox"/>
+      </SVNRepository>
+    </repository>
+    <asfext:implements>
+        <asfext:Standard>
+            <asfext:title>Portable document format (PDF)</asfext:title>
+            <asfext:body>ISO International Organization for Standardization</asfext:body>
+            <asfext:id>ISO 32000-1</asfext:id>
+            <asfext:url rdf:resource="http://www.iso.org"/>
+        </asfext:Standard>
+      </asfext:implements>
+      <asfext:implements>
+        <asfext:Standard>
+            <asfext:title>Portable document format (PDF)</asfext:title>
+            <asfext:body>Authorised copy of the ISO standard with identical technical content from Adobe Systems Incorporated</asfext:body>
+            <asfext:id>ISO 32000-1</asfext:id>
+            <asfext:url rdf:resource="http://www.adobe.com/devnet/pdf/pdf_reference.html"/>
+        </asfext:Standard>
+      </asfext:implements>
+  </Project>
+</rdf:RDF>

http://git-wip-us.apache.org/repos/asf/pdfbox-docs/blob/78a43732/content/download.cgi
----------------------------------------------------------------------
diff --git a/content/download.cgi b/content/download.cgi
new file mode 100755
index 0000000..06a42f2
--- /dev/null
+++ b/content/download.cgi
@@ -0,0 +1,6 @@
+#!/bin/sh
+# Wrapper script around mirrors.cgi script
+# (we must change to that directory in order for python to pick up the
+#  python includes correctly)
+cd /www/www.apache.org/dyn/mirrors
+/www/www.apache.org/dyn/mirrors/mirrors.cgi $*

http://git-wip-us.apache.org/repos/asf/pdfbox-docs/blob/78a43732/content/download.html
----------------------------------------------------------------------
diff --git a/content/download.html b/content/download.html
new file mode 100644
index 0000000..77c83f3
--- /dev/null
+++ b/content/download.html
@@ -0,0 +1,261 @@
+---
+layout: default
+title: downloads
+---
+
+<h1>Downloads</h1>
+
+<p>There are several ways to obtain the PDFBox binaries or sources:</p>
+
+<ul>
+    <li><a href="#20x">PDFBox 2.0.0 RC1</a></li>
+    <li><a href="#18x">PDFBox 1.8.10 release</a></li>
+    <li><a href="#oldreleases">Previous releases</a></li>
+    <li><a href="#scm">Latest source from version control</a></li>
+    <li><a href="#snapshot">Latest development snapshot build</a></li>
+</ul>
+
+<p>See also the <a href="#exportcontrol">export control</a> information related to the encryption features included in Apache PDFBox.</p>
+
+<h2>Current releases</h2>
+
+<a name="mirror"></a>
+<h3>Mirrors</h3>
+
+
+[if-any logo] []([link]) [end] Your current mirror is
+<code>[preferred]</code>. If you encounter a problem with this mirror, please select another. If all mirrors are failing, try
+the *backup* mirrors at the end of the mirrors list, which should be available.
+Alternatively, <a href="http://www.apache.org/mirrors/">view the complete list of mirrors</a>.
+
+<form action="/download.cgi" method="get" id="SelectMirror">Mirrors:
+  <select name="Preferred">[if-any http] [for http]
+  <option value="[http]">[http]</option>[end] [end] [if-any ftp] [for ftp]
+  <option value="[ftp]">[ftp]</option>[end] [end] [if-any backup] [for backup]
+  <option value="[backup]">[backup] (backup)</option>[end] [end]</select>
+  <input type="submit" value="Change"></input>
+</form>
+
+<a name="20x"></a>
+<h3>PDFBox 2.0.0-RC1</h3>
+
+<p>This is a release candidate of the upcoming major release based on the current svn trunk.
+    See the <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/RELEASE-NOTES.txt">Release Notes</a> for more details.
+    The <a href="http://pdfbox.apache.org/2.0/migration.html">Migration Guide</a> gives an overview about things to look at when upgrading from earlier versions.
+</p>
+
+<ul>
+    <li>
+        <a href="[preferred]pdfbox/2.0.0-RC1/pdfbox-2.0.0-RC1-src.zip">pdfbox-2.0.0-RC1-src.zip</a> 13.1MB, source archive
+        <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/pdfbox-2.0.0-RC1-src.zip.asc">PGP</a>
+        <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/pdfbox-2.0.0-RC1-src.zip.md5">MD5</a>
+        <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/pdfbox-2.0.0-RC1-src.zip.sha">SHA1</a>
+    </li>
+    <li>
+      <a href="[preferred]pdfbox/2.0.0-RC1/pdfbox-app-2.0.0-RC1.jar">pdfbox-app-2.0.0-RC1.jar</a> 7.9MB, pre-built PDFBox standalone binary
+        <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/pdfbox-app-2.0.0-RC1.jar.asc">PGP</a>
+        <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/pdfbox-app-2.0.0-RC1.jar.md5">MD5</a>
+        <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/pdfbox-app-2.0.0-RC1.jar.sha">SHA1</a>
+    </li>
+    <li>
+        <a href="[preferred]pdfbox/2.0.0-RC1/preflight-app-2.0.0-RC1.jar">preflight-app-2.0.0-RC1.jar</a> 8.6MB, pre-built Preflight standalone binary
+        <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/preflight-app-2.0.0-RC1.jar.asc">PGP</a>
+        <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/preflight-app-2.0.0-RC1.jar.md5">MD5</a>
+        <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/preflight-app-2.0.0-RC1.jar.sha">SHA1</a>
+    </li>
+    <li>
+        <a href="[preferred]pdfbox/2.0.0-RC1/debugger-app-2.0.0-RC1.jar">debugger-app-2.0.0-RC1.jar</a> 7.8MB, pre-built Debugger standalone binary
+        <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/debugger-app-2.0.0-RC1.jar.asc">PGP</a>
+        <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/debugger-app-2.0.0-RC1.jar.md5">MD5</a>
+        <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/debugger-app-2.0.0-RC1.jar.sha">SHA1</a>
+    </li>
+    <li>
+        <a href="[preferred]pdfbox/2.0.0-RC1/pdfbox-2.0.0-RC1.jar">pdfbox-2.0.0-RC1.jar</a> 2.4MB, pre-built binary
+        <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/pdfbox-2.0.0-RC1.jar.asc">PGP</a>
+        <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/pdfbox-2.0.0-RC1.jar.md5">MD5</a>
+        <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/pdfbox-2.0.0-RC1.jar.sha">SHA1</a>
+    </li>
+    <li>
+        <a href="[preferred]pdfbox/2.0.0-RC1/fontbox-2.0.0-RC1.jar">fontbox-2.0.0-RC1.jar</a> 1.5MB, pre-built binary
+        <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/fontbox-2.0.0-RC1.jar.asc">PGP</a>
+        <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/fontbox-2.0.0-RC1.jar.md5">MD5</a>
+        <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/fontbox-2.0.0-RC1.jar.sha">SHA1</a>
+    </li>
+    <li>
+        <a href="[preferred]pdfbox/2.0.0-RC1/preflight-2.0.0-RC1.jar">preflight-2.0.0-RC1.jar</a> 242KB, pre-built binary
+        <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/preflight-2.0.0-RC1.jar.asc">PGP</a>
+        <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/preflight-2.0.0-RC1.jar.md5">MD5</a>
+        <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/preflight-2.0.0-RC1.jar.sha">SHA1</a>
+    </li>
+    <li>
+        <a href="[preferred]pdfbox/2.0.0-RC1/xmpbox-2.0.0-RC1.jar">xmpbox-2.0.0-RC1.jar</a> 131KB, pre-built binary
+        <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/xmpbox-2.0.0-RC1.jar.asc">PGP</a>
+        <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/xmpbox-2.0.0-RC1.jar.md5">MD5</a>
+        <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/xmpbox-2.0.0-RC1.jar.sha">SHA1</a>
+    </li>
+    <li>
+        <a href="[preferred]pdfbox/2.0.0-RC1/pdfbox-tools-2.0.0-RC1.jar">pdfbox-tools-2.0.0-RC1.jar</a> 68KB, pre-built binary
+        <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/pdfbox-tools-2.0.0-RC1.jar.asc">PGP</a>
+        <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/pdfbox-tools-2.0.0-RC1.jar.md5">MD5</a>
+        <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/pdfbox-tools-2.0.0-RC1.jar.sha">SHA1</a>
+    </li>
+    <li>
+        <a href="[preferred]pdfbox/2.0.0-RC1/pdfbox-debugger-2.0.0-RC1.jar">pdfbox-debugger-2.0.0-RC1.jar</a> 218KB, pre-built binary
+        <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/pdfbox-debugger-2.0.0-RC1.jar.asc">PGP</a>
+        <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/pdfbox-debugger-2.0.0-RC1.jar.md5">MD5</a>
+        <a href="http://www.apache.org/dist/pdfbox/2.0.0-RC1/pdfbox-debugger-2.0.0-RC1.jar.sha">SHA1</a>
+    </li>
+</ul>
+
+<a name="18x"></a>
+<h3>PDFBox 1.8.10</h3>
+
+<p>
+    This is an incremental feature release based on the earlier `1.8.x` releases.
+    See the <a href="http://www.apache.org/dist/pdfbox/1.8.10/RELEASE-NOTES.txt">Release Notes</a> for more details.
+</p>
+
+<ul>
+    <li>
+        <a href="[preferred]pdfbox/1.8.10/pdfbox-1.8.10-src.zip">pdfbox-1.8.10-src.zip</a> 10.9MB, source archive
+        <a href="http://www.apache.org/dist/pdfbox/1.8.10/pdfbox-1.8.10-src.zip.asc">PGP</a>
+        <a href="http://www.apache.org/dist/pdfbox/1.8.10/pdfbox-1.8.10-src.zip.md5">MD5</a>
+        <a href="http://www.apache.org/dist/pdfbox/1.8.10/pdfbox-1.8.10-src.zip.sha">SHA1</a>
+    </li>
+    <li>
+        <a href="[preferred]pdfbox/1.8.10/pdfbox-app-1.8.10.jar">pdfbox-app-1.8.10.jar</a> 10.6MB, pre-built PDFBox standalone binary
+        <a href="http://www.apache.org/dist/pdfbox/1.8.10/pdfbox-app-1.8.10.jar.asc">PGP</a>
+        <a href="http://www.apache.org/dist/pdfbox/1.8.10/pdfbox-app-1.8.10.jar.md5">MD5</a>
+        <a href="http://www.apache.org/dist/pdfbox/1.8.10/pdfbox-app-1.8.10.jar.sha">SHA1</a>
+    </li>
+    <li>
+        <a href="[preferred]pdfbox/1.8.10/preflight-app-1.8.10.jar">preflight-app-1.8.10.jar</a> 7.1MB, pre-built Preflight standalone binary
+        <a href="http://www.apache.org/dist/pdfbox/1.8.10/preflight-app-1.8.10.jar.asc">PGP</a>
+        <a href="http://www.apache.org/dist/pdfbox/1.8.10/preflight-app-1.8.10.jar.md5">MD5</a>
+        <a href="http://www.apache.org/dist/pdfbox/1.8.10/preflight-app-1.8.10.jar.sha">SHA1</a>
+    </li>
+    <li>
+        <a href="[preferred]pdfbox/1.8.10/pdfbox-1.8.10.jar">pdfbox-1.8.10.jar</a> 4.1MB, pre-built binary
+        <a href="http://www.apache.org/dist/pdfbox/1.8.10/pdfbox-1.8.10.jar.asc">PGP</a>
+        <a href="http://www.apache.org/dist/pdfbox/1.8.10/pdfbox-1.8.10.jar.md5">MD5</a>
+        <a href="http://www.apache.org/dist/pdfbox/1.8.10/pdfbox-1.8.10.jar.sha">SHA1</a>
+    </li>
+    <li>
+        <a href="[preferred]pdfbox/1.8.10/fontbox-1.8.10.jar">fontbox-1.8.10.jar</a> 219KB, pre-built binary
+        <a href="http://www.apache.org/dist/pdfbox/1.8.10/fontbox-1.8.10.jar.asc">PGP</a>
+        <a href="http://www.apache.org/dist/pdfbox/1.8.10/fontbox-1.8.10.jar.md5">MD5</a>
+        <a href="http://www.apache.org/dist/pdfbox/1.8.10/fontbox-1.8.10.jar.sha">SHA1</a>
+    </li>
+    <li>
+        <a href="[preferred]pdfbox/1.8.10/jempbox-1.8.10.jar">jempbox-1.8.10.jar</a> 51KB, pre-built binary
+        <a href="http://www.apache.org/dist/pdfbox/1.8.10/jempbox-1.8.10.jar.asc">PGP</a>
+        <a href="http://www.apache.org/dist/pdfbox/1.8.10/jempbox-1.8.10.jar.md5">MD5</a>
+        <a href="http://www.apache.org/dist/pdfbox/1.8.10/jempbox-1.8.10.jar.sha">SHA1</a>
+    </li>
+    <li>
+        <a href="[preferred]pdfbox/1.8.10/preflight-1.8.10.jar">preflight-1.8.10.jar</a> 298KB, pre-built binary
+        <a href="http://www.apache.org/dist/pdfbox/1.8.10/preflight-1.8.10.jar.asc">PGP</a>
+        <a href="http://www.apache.org/dist/pdfbox/1.8.10/preflight-1.8.10.jar.md5">MD5</a>
+        <a href="http://www.apache.org/dist/pdfbox/1.8.10/preflight-1.8.10.jar.sha">SHA1</a>
+    </li>
+    <li>
+        <a href="[preferred]pdfbox/1.8.10/xmpbox-1.8.10.jar">xmpbox-1.8.10.jar</a> 115KB, pre-built binary
+        <a href="http://www.apache.org/dist/pdfbox/1.8.10/xmpbox-1.8.10.jar.asc">PGP</a>
+        <a href="http://www.apache.org/dist/pdfbox/1.8.10/xmpbox-1.8.10.jar.md5">MD5</a>
+        <a href="http://www.apache.org/dist/pdfbox/1.8.10/xmpbox-1.8.10.jar.sha">SHA1</a>
+    </li>
+            
+</ul>
+
+<h3>Verify</h3>
+
+<p>
+    It is essential that you verify the integrity of the downloaded files using the PGP signatures or 
+    MD5 and SHA1 checksums. Please read <a href="http://httpd.apache.org/dev/verification.html">Verifying Apache HTTP Server Releases</a>
+    for more information on why you should verify our releases.
+</p>
+
+<p>
+    The PGP signatures can be verified using PGP or GPG. First download the 
+    <a href="http://www.apache.org/dist/pdfbox/KEYS">KEYS</a> file as well as the .asc signature files for the 
+    relevant release packages. Make sure you get these
+    files from the <a href="http://www.apache.org/dist/pdfbox">main distribution directory</a>, rather than 
+    from a mirror. Then verify the signatures using
+</p>
+
+<pre>
+% pgpk -a KEYS
+% pgpv pdfbox-X.Y.Z-src.zip.asc
+</pre> 
+
+or
+
+<pre>
+% pgp -ka KEYS
+% pgp pdfbox-X.Y.Z-src.zip.asc
+</pre> 
+
+or
+
+<pre>
+% gpg --import KEYS
+% gpg --verify pdfbox-X.Y.Z-src.zip.asc
+</pre>
+
+<a name="oldreleases"></a>
+<h2>Previous releases</h2>
+
+<p>
+    Previous Apache releases (starting with version `0.8.0-incubating`) are available in the <a href="http://archive.apache.org/dist/pdfbox/">release archive</a>. 
+    Older releases (up to version `0.7.3`) published from SourceForge are still available on 
+    <a href="http://sourceforge.net/projects/pdfbox/files/PDFBox/">SourceForge Files</a>.
+</p>
+
+<a name="scm"></a>
+<h2>Latest source from version control</h2>
+
+To fetch the latest source code from the trunk in the Subversion repository, just run the following command:
+
+<pre>
+svn checkout http://svn.apache.org/repos/asf/pdfbox/trunk/
+</pre>
+
+<p>
+    You can also browse the Subversion repository using <a href="http://svn.apache.org/viewvc/pdfbox/">ViewVC</a>;
+</p>
+
+<p>
+    We also have a read-only <a href="http://git.apache.org/">Git mirror</a> which is further mirrored to GitHub as <a href="https://github.com/apache/pdfbox">apache/pdfbox</a>.
+</p>
+
+<a name="#snapshot"></a>
+<h2>Latest development snapshot</h2>
+
+<p>
+    Development snapshots are built automatically from the latest SVN trunk. <strong>Snapshots are unreleased development previews and may change without notice.</strong>
+    Snapshots do not have their own version numbers and there is no guarantee of API stability between snapshots.
+</p>
+
+<a href="http://repository.apache.org/content/groups/snapshots/org/apache/pdfbox/">Download a snapshot build</a>
+
+<a name="exportcontrol"></a>
+<h2>Export control information</h2>
+
+<p>This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export
+to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import,
+possession, or use, and re-export of encryption software, to see if this is permitted. See <http://www.wassenaar.org/> for more information.
+</p>
+
+<p>The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1,
+which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this Apache Software Foundation
+distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations,
+Section 740.13) for both object code and source code.
+</p>
+
+<p>The following provides more details on the included cryptographic software:
+</p>
+
+<ul>
+    <li>Apache PDFBox uses the Java Cryptography Architecture (JCA) and the Bouncy Castle libraries for handling encryption in PDF documents. 
+        </li>
+</ul>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/pdfbox-docs/blob/78a43732/content/errors/403.mdtext
----------------------------------------------------------------------
diff --git a/content/errors/403.mdtext b/content/errors/403.mdtext
new file mode 100644
index 0000000..888f7b8
--- /dev/null
+++ b/content/errors/403.mdtext
@@ -0,0 +1,15 @@
+---
+layout: default
+title:  Forbidden (403)
+---
+# 403
+
+We're sorry, but the page you requested cannot be accessed. 
+
+Maybe you 
+
+* typed the address incorrectly
+* followed a link from another site that pointed to this page.
+
+
+If you came by following a broken link, please report the [issue](https://issues.apache.org/jira/browse/pdfbox).
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/pdfbox-docs/blob/78a43732/content/errors/404.mdtext
----------------------------------------------------------------------
diff --git a/content/errors/404.mdtext b/content/errors/404.mdtext
new file mode 100644
index 0000000..e83602d
--- /dev/null
+++ b/content/errors/404.mdtext
@@ -0,0 +1,15 @@
+---
+layout: default
+title:  Page Not Found
+---
+# 404
+
+We're sorry, but the page you requested cannot be found. 
+
+Maybe you 
+
+* typed the address incorrectly
+* followed a link from another site that pointed to this page.
+
+
+If you came by following a broken link, please report the [issue](https://issues.apache.org/jira/browse/pdfbox).
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/pdfbox-docs/blob/78a43732/content/favicon.ico
----------------------------------------------------------------------
diff --git a/content/favicon.ico b/content/favicon.ico
new file mode 100644
index 0000000..fdf36f7
Binary files /dev/null and b/content/favicon.ico differ

http://git-wip-us.apache.org/repos/asf/pdfbox-docs/blob/78a43732/content/ideas.mdtext
----------------------------------------------------------------------
diff --git a/content/ideas.mdtext b/content/ideas.mdtext
new file mode 100644
index 0000000..3090f23
--- /dev/null
+++ b/content/ideas.mdtext
@@ -0,0 +1,88 @@
+---
+layout: default
+title:  Ideas
+---
+
+# Ideas
+
+There are several ideas to enhance PDFBox. These are outlined below together with 
+comments and the releases they are planned for as soon as there is agreement to do the
+implementation.
+
+## Enhance type safety
+
+Enhance the type safety of PDFBox and add more generic collections and code cleanup.
+
+## Remove all deprecated methods
+
+This is an ongoing effort and most/all deprecated methods will be removed in PDFBox 2.0.0
+
+## Handle large PDF files
+
+In addition to the PDF parsing pdfbox does not always handle large PDF files well as some 
+of the references are implemented as int instead of long
+
+
+## <span class="complete">Switch to Java 1.6</span>
+
+<span class="complete">PDFBox 2.0.0 has Java 6 as minimum requirement.</span>
+
+## <span class="complete">Break PDFBox into modules</span>
+
+<span class="complete">In order to support different use cases and provide a minimal toolset PDFBox 2.0.0 should be 
+separated into different modules. This goes inline with rearranging some of the code
+e.g. remove AWT from PDDocument.
+</span>
+
+## <span class="complete">Enhance the font rendering</span>
+
+<span class="complete">PDFBox 2.0.0 will render most of the fonts without using AWT.</span>
+ 
+## Replace/enhance PDF parsing
+
+<span class="complete">The old "classic" PDF parser in PDFBox is not in line with the PDF specification as it parses
+a PDF from top to bottom instead of respecting the XRef information.</span> The NonSequentialParser
+enhanced that situation but there is a need to have a cleaner foundation broken into several levels
+
+- io
+- tokenization
+- parsing according to structure
+- COS level document
+- PD level document
+- add some self healing mechanism to process corrupt files
+
+In addition handling documents which are not conforming shouldn't be part of the core parser
+but of a extentable approach e.g. by adding hooks to allow for handling parsing exceptions.
+
+## <span class="complete">Add the ability to create PDFs using unicode encoded text</span>
+
+<span class="complete">The recent PDFBox version is limited to WinANSI encoded text. 2.0.0 should have unicode support as well.</span>
+
+## Rearchitect the COS level objects
+
+The COS level objects need to be refactored to be in line with the new parser. In addition
+method signatures, constructing ... should be made similar across the COS objects
+
+## Parsing on demand
+
+Instead of always parsing the complete document PDFs should be parsable on demand making
+objects only available as they are needed to enhance performance and minimize memory footprint.
+
+This might be achieved by providing a layered approach where a base (non caching) parser provides
+the on demand parsing and a caching parser built on top caches objects for use cases where
+this is beneficial e.g. rendering, debugging ...
+
+- the lexer would be the low level component delivering tokens to the parser.
+  A sample implementation exists as part of PDFBOX-1000. The benefit would be a clean low
+  level handling of tokens. The current implementation needs to be (slightly ?) revised though
+- the incremental (non caching) parser would allow for page by page processing moving forward 
+  only to support text extraction, merging, splitting … - the benefit would be a lower memory 
+  consumption as well as a potential faster processing
+- the caching parser would support applications such a PDFDebugger or PDFReader 
+
+## Handling of PDF versions
+The current implementation is a mix of PDF 1.4 and some adhoc additions without a clear 
+distinction what is and is not supported. We could ad some support for explicitly handling
+versions in PDFBox e.g. my marking certain methods and properties to the PDF version support
+level. This could in addition be a good basis for PDF/A and other compliance checks. 
+

http://git-wip-us.apache.org/repos/asf/pdfbox-docs/blob/78a43732/content/images/footer.png
----------------------------------------------------------------------
diff --git a/content/images/footer.png b/content/images/footer.png
new file mode 100644
index 0000000..344b3b4
Binary files /dev/null and b/content/images/footer.png differ

http://git-wip-us.apache.org/repos/asf/pdfbox-docs/blob/78a43732/content/images/logo-head.gif
----------------------------------------------------------------------
diff --git a/content/images/logo-head.gif b/content/images/logo-head.gif
new file mode 100644
index 0000000..586aef3
Binary files /dev/null and b/content/images/logo-head.gif differ


Mime
View raw message