-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathpdf-designer-min.js
14 lines (14 loc) · 60.8 KB
/
pdf-designer-min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**************************************************/
/* */
/* PDFDesigner */
/* JavaScript version */
/* v1.00 */
/* http://www.petitmonte.com/pdfdesigner/ */
/* */
/* Copyright 2015 Takeshi Okamoto (Japan) */
/* Released under the MIT license */
/* */
/* Date: 2015-12-24 */
/**************************************************/
function PDF_SeekPos(e){for(var t;;)if(t=e.ReadString(1),"\n"!=t&&"\r"!=t&&" "!=t){e.Pos=e.Pos-1;break}}function PDF_CommnetSkip(e){for(var t;;)if(t=e.ReadString(1),"\n"==t||"\r"==t)break}function PDF_GetString(e){var t,r="";for(PDF_SeekPos(e);;){if(t=e.ReadString(1),"\n"==t||"\r"==t||" "==t||"/"==t||"["==t||"]"==t||"("==t||")"==t||"<"==t||">"==t||"%"==t){if("\n"==t||"\r"==t||" "==t){e.Pos=e.Pos-1;break}if(""!=r){e.Pos=e.Pos-1;break}if("/"!=t){r=t;break}}r+=t}return r}function PDF_TextSkip(e){for(var t;;){if(t=e.ReadString(1),e.Pos>e.FileSize)break;if("\\"==t){if(t=e.ReadString(1),e.Pos>e.FileSize)break;if("\n"==t||"\r"==t)"\r"==t&&(t=e.ReadString(1),"\n"!=t&&(e.Pos=e.Pos-1));else if(t.match(/[0-9]+/)){if(t=e.ReadString(1),e.Pos>e.FileSize||")"==t)break;if(t.match(/[^0-9]+/))continue;if(t=e.ReadString(1),e.Pos>e.FileSize||")"==t)break;if(t.match(/[^0-9]+/))continue}}else if(")"==t)break}}function PDF_TopLineSkip(e){var t;PDF_GetString(e),PDF_GetString(e),PDF_GetString(e),t=PDF_GetString(e),"%"==t?PDF_CommnetSkip(e):e.Pos=e.Pos-t.length}function PDF_DictionarySkip(e){for(var t,r=0,i=!1;;)if(t=PDF_GetString(e),"<"==t)r++;else if(">"==t){if(r--,0==r){i=!0;break}}else if("%"==t)PDF_CommnetSkip(e);else if("("==t)PDF_TextSkip(e);else if("endobj"==t){i=!1;break}return i}function PDF_ArraySkip(e){for(var t,r=!1;;){if(t=PDF_GetString(e),"]"==t){r=!0;break}if("<"==t){if(e.Pos=e.Pos-1,!PDF_DictionarySkip(e)){r=!1;break}}else if("%"==t)PDF_CommnetSkip(e);else if("("==t)PDF_TextSkip(e);else if("endobj"==t){r=!1;break}}return r}function PDF_NameSkip(e){for(var t,r=!1;;){if(t=PDF_GetString(e),""==t&&Continue,"/"==t[0]){r=!0;break}if("%"==t)PDF_CommnetSkip(e);else if("endobj"==t){r=!1;break}}return r}function PDF_GetMediaBoxRect(e){function t(){for(var e="";;){if(i>=r.length-1)break;if("+"==r[i]||"-"==r[i]||r[i].match(/[0-9]+/))break;i++}for(;;){if(i>=r.length-1)break;if("\n"==r[i]||"\r"==r[i]||" "==r[i]||"]"==r[i])break;e+=r[i],i++}return""==e&&(e="0"),e}var r=e,i=0,n=new TRect;try{n.Left=Math.round(parseFloat(t())),n.Top=Math.round(parseFloat(t())),n.Right=Math.round(parseFloat(t())),n.Bottom=Math.round(parseFloat(t()))}catch(o){n.Left=0,n.Top=0,n.Right=0,n.Bottom=0}return n}function PDF_RectToWidth(e){return e.Left<=e.Right?e.Right-e.Left:e.Left-e.Right}function PDF_RectToHeight(e){return e.Top<=e.Bottom?e.Bottom-e.Top:e.Top-e.Bottom}function PDF_mmToPts(e){return Math.round(72/25.4*e)}function PDF_PtsTomm(e){return Math.round(25.4*e/72)}function PDF_GetDateTime_Now(){function e(e){var t=e+"";return 1==t.length?"0"+t:t}var t=new Date;return t.getFullYear()+e(t.getMonth()+1)+e(t.getDate())+e(t.getHours())+e(t.getMinutes())+e(t.getSeconds())}function PDF_OverlappingCut(e){for(var t,r=new Array,i=!1,n=e.length,o=new Array,a=0;n>a;a++)r[r.length]=-1;for(var a=0;n>a;a++){i=!1,t=e[a];for(var s=0;n>s;s++)if(t==r[s]){i=!0;break}i||(o[o.length]=e[a],r[a]=t)}return o}function PDF_StrToIntDef(e,t){var r=parseInt(e,10);return isNaN(r)&&(r=t),r}function PDF_StrToFloatDef(e,t){var r=-32768;return"null"!=e&&(r=parseFloat(e)),isNaN(r)&&(r=t),r}function PDF_ConvertObjectPos(e,t){for(var r=e+"",i=r.length,n="",o=0;t-i>o;o++)n+="0";return n+r}function PDF_RGB(e,t,r){var i=new TColor;return i.Red=e,i.Green=t,i.Blue=r,i}function TPDFObjMemManager(){this.ObjectIndex=0,this.ObjectPosArray=new Array}function TReadStream(e){this.Pos=0,this.Stream=e,this.FileSize=e.length}function TMemoryStream(e,t,r){this.Pos=0,e.Stream.subarray?this.Stream=new Uint8Array(e.Stream.subarray(t,r)):this.Stream=new Uint8Array(Stream.subarray(t,r))}function TFileStream(e){void 0==e?this.MemorySize=3e7:this.MemorySize=parseInt(e,10),this.Pos=0,this.Size=0,this.Stream=new Uint8Array(this.MemorySize),this.WriteString("%PDF-")}function TColor(){this.Red=0,this.Green=0,this.Blue=0}function TRect(){this.Left=0,this.Top=0,this.Right=0,this.Bottom=0}function TPDFAnalyst(e){this.FileName=e,this.Version="",this.Stream=null,this.ObjectCount=-1,this.ObjectPosArray=new Array,this.DeleteObject=new Array,this.XrefTableList=new Array,this.Encrypt=!1,this.Optimize=!1,this.Tag=!1,this.PageCount=-1,this.PageSize=new TRect,this.RootID=-1,this.InfoID=-1,this.MetadataID=-1,this.FirstPageID=-1,this.FirstPagesID=-1,this.OutlinesID=-1}function TPDFParser(e,t){this._PageList=t,this._ObjectMem=e}function TPDFCode(){}function TPDFDocInfo(){this.Title="",this.Subject="",this.Author="",this.Keywords="",this.Creator="",this.Producer="",this.CreationDate="",this.ModDate="",this.Trapped=!1}function TPDFOpenAction(){this.Left=-1,this.Top=-1,this.Right=-1,this.Bottom=-1,this.Zoom=-1,this.ObjectID=-1,this.GenerationID=-1,this.SubType=TPDFOpenActionType.oaDefault}function TPDFViewerPreferences(){this.HideToolbar=!1,this.HideMenubar=!1,this.HideWindowUI=!1,this.FitWindow=!1,this.CenterWindow=!1,this.Direction=!1,this.DisplayDocTitle=!1,this.NonFullScreenPageMode=TPDFPageMode.pmDefault}function TPDFDocView(){this.PageMode=TPDFPageMode.pmDefault,this.PageLayout=TPDFPageLayout.plDefault,this.OpenAction=new TPDFOpenAction,this.ViewerPreferences=new TPDFViewerPreferences}function TPDFCombine(){this._BassID=0,this._PageList=new Array,this._ObjectMem=new TPDFObjMemManager,this.Info=new TPDFDocInfo,this.View=new TPDFDocView}function TPDFKnife(){this._BassID=0,this._PageList=new Array,this._ObjectMem=new TPDFObjMemManager,this.Info=new TPDFDocInfo,this.View=new TPDFDocView}function TPDFDeletePage(){this._BassID=0,this._PageList=new Array,this._ObjectMem=new TPDFObjMemManager,this.Info=new TPDFDocInfo,this.View=new TPDFDocView}function TPDFRotatePage(){this._ObjectMem=new TPDFObjMemManager}function TPDFInfoMaker(){this._ObjectMem=new TPDFObjMemManager,this.Info=new TPDFDocInfo,this.View=new TPDFDocView}function TPDFNode(e,t,r,i,n,o,a,s,S){this._ID,this.Page=i,this.ShowPos=n,this.Caption=r,this.URL=o,this.Level=t,this.Italic=s,this.Bold=a,this.Color=S,this.Parent=e,this.ChildNodes=new TPDFNodeList}function TPDFNodeList(){this._list=new Array}function TPDFOutLineManager(){this._PageList=new Array,this.Node=new TPDFNodeList}function TPDFOutLineMaker(){this._ObjectMem=new TPDFObjMemManager,this.Info=new TPDFDocInfo,this.View=new TPDFDocView,this.OutLine=new TPDFOutLineManager}TReadStream.prototype={Read:function(e){var t=this.Stream.subarray(this.Pos,this.Pos+e);return this.Pos=this.Pos+e,t},ReadString:function(e){var t=String.fromCharCode.apply(null,this.Stream.subarray(this.Pos,this.Pos+e));return this.Pos=this.Pos+e,t}},TMemoryStream.prototype={_AsciiToUint8Array:function(e){for(var t=e.length,r=new Uint8Array(t),i=0;t>i;i++)r[i]=e[i].charCodeAt(0);return r},_Combine:function(e,t){var r=e.length,i=t.length,n=new Uint8Array(r+i);return n.set(e,0),n.set(t,r),n},Read:function(e){var t=this.Stream.subarray(this.Pos,this.Pos+e);return this.Pos=this.Pos+e,t},ReadString:function(e){var t=String.fromCharCode.apply(null,this.Stream.subarray(this.Pos,this.Pos+e));return this.Pos=this.Pos+e,t},WriteString:function(e){this.Stream=this._Combine(this.Stream,this._AsciiToUint8Array(e))},WriteStream:function(e,t,r){e.Stream.subarray?this.Stream=this._Combine(this.Stream,e.Stream.subarray(t,r)):this.Stream=this._Combine(this.Stream,e.subarray(t,r))},getFileSize:function(){return this.Stream.length}},TFileStream.prototype={_AsciiToUint8Array:function(e){for(var t=e.length,r=new Uint8Array(t),i=0;t>i;i++)r[i]=e[i].charCodeAt(0);return r},WriteString:function(e){var t=this._AsciiToUint8Array(e);if(this.Stream.length<=this.Size+t.length){var r=new Uint8Array(this.Stream);this.Stream=new Uint8Array(this.Size+t.length+this.MemorySize),this.Stream.set(r.subarray(0,r.length))}this.Stream.set(t,this.Size),this.Size=this.Size+t.length},WriteStream:function(e,t,r){var i=e.Stream.subarray(t,r);if(this.Stream.length<=this.Size+i.length){var n=new Uint8Array(this.Stream);this.Stream=new Uint8Array(this.Size+i.length+this.MemorySize),this.Stream.set(n.subarray(0,n.length))}this.Stream.set(i,this.Size),this.Size=this.Size+i.length},Rewrite:function(e){this.Stream.length<=e.getFileSize()&&(this.Stream=new Uint8Array(e.getFileSize()+this.MemorySize)),this.Stream.set(e.Stream,0),this.Size=e.getFileSize()},getFileSize:function(){return this.Size},SaveToFile:function(e){if(window.navigator.msSaveBlob)window.navigator.msSaveBlob(new Blob([this.Stream.subarray(0,this.Size)],{type:"application/pdf"}),e);else{var t=document.createElement("a");t.href=URL.createObjectURL(new Blob([this.Stream.subarray(0,this.Size)],{type:"application/pdf"})),t.download=e,document.body.appendChild(t),t.click(),document.body.removeChild(t)}}},TPDFAnalyst.prototype={LoadError:function(e){throw e},IsObjectID:function(e){var t=PDF_StrToIntDef(e,-1);return 0>t||t>this.ObjectCount-1?!1:!0},GetPointer:function(){throw PDFDESIGNER_ERROR_003},GetGenerationID:function(e){var t,r=-1;t=this.Stream.Pos,this.Stream.Pos=parseInt(this.ObjectPosArray[e],10);try{PDF_GetString(this.Stream),r=PDF_StrToIntDef(PDF_GetString(this.Stream),-1)}finally{this.Stream.Pos=t}return r},ObjectIndexCheck:function(e){null==this.Stream&&this.LoadError(PDFDESIGNER_ERROR_001),this.IsObjectID(e)||this.LoadError(PDFDESIGNER_ERROR_002)},GetObject:function(e){throw PDFDESIGNER_ERROR_003},GetObjectSize:function(e){var t,r,i,n=0,o=0;if(this.ObjectIndexCheck(e),this.DeleteObject[e])return o;for(i=this.Stream.Pos,this.Stream.Pos=parseInt(this.ObjectPosArray[e],10);;)if(r=PDF_GetString(this.Stream),"%"==r)PDF_CommnetSkip(this.Stream);else if("("==r)PDF_TextSkip(this.Stream);else if("/Length"==r)n=this.GetObjectType_Integer();else if("stream"==r)t=this.Stream.ReadString(1),"\r"==t&&(t=this.Stream.ReadString(1)),this.Stream.Pos=this.Stream.Pos+n;else if("endobj"==r)break;return o=this.Stream.Pos-parseInt(this.ObjectPosArray[e],10),this.Stream.Pos=i,o},GetObjectStream:function(e){var t=this.GetObjectSize(e),r=parseInt(this.ObjectPosArray[e],10),i=new TMemoryStream(this.Stream,r,r+t);return i.WriteString("\n"),i},GetInDeirect_Integer:function(e){var t,r,i=0;for(r=this.Stream.Pos,this.Stream.Pos=parseInt(this.ObjectPosArray[e],10),PDF_TopLineSkip(this.Stream);;)if(t=PDF_GetString(this.Stream),""!=t)if("%"==t)PDF_CommnetSkip(this.Stream);else{if(t[0].match(/[1-9]+/)){i=PDF_StrToIntDef(t,0);break}if("endobj"==t)break}return this.Stream.Pos=r,i},GetInDeirect_Array:function(e,t){var r,i,n=!1;if(i=this.Stream.Pos,this.Stream.Pos=parseInt(this.ObjectPosArray[e],10),PDF_TopLineSkip(this.Stream),r=PDF_GetString(this.Stream),"["!=r)return this.Stream.Pos=i,n;for(;;){if(r=PDF_GetString(this.Stream),"]"==r||"endobj"==r)break;if(e=PDF_StrToIntDef(r,-1),this.IsObjectID(e)&&(t[t.length]=e),r=PDF_GetString(this.Stream),"]"==r||"endobj"==r)break;if(r=PDF_GetString(this.Stream),"]"==r||"endobj"==r)break;n=!0}return this.Stream.Pos=i,n},GetInDeirect_ArrayofName:function(e,t){var r,i,n=!1;if(i=this.Stream.Pos,this.Stream.Pos=parseInt(this.ObjectPosArray[e],10),PDF_TopLineSkip(this.Stream),r=PDF_GetString(this.Stream),"["!=r)return this.Stream.Pos=i,n;for(;;)if(r=PDF_GetString(this.Stream),""!=r){if("]"==r||(r="endobj"))break;"/"==r[0]&&(n=!0,t[t.length]=r)}return this.Stream.Pos=i,n},GetObjectType_Integer:function(){var e,t,r,i,n,o=0;i=this.Stream.Pos;try{e=PDF_GetString(this.Stream),t=PDF_GetString(this.Stream),r=PDF_GetString(this.Stream),t.match(/[0-9]+/)&&"R"==r?(n=PDF_StrToIntDef(e,-1),o=this.IsObjectID(n)?this.GetInDeirect_Integer(n):0):o=PDF_StrToIntDef(e,0)}catch(a){o=0}return this.Stream.Pos=i,o},GetObjectType_Array:function(e){var t,r,i;if(i=this.Stream.Pos,t=PDF_GetString(this.Stream),"["==t)for(;;){if(t=PDF_GetString(this.Stream),"]"==t||"endobj"==t)break;if(r=PDF_StrToIntDef(t,-1),this.IsObjectID(r)&&(e[e.length]=r),t=PDF_GetString(this.Stream),"]"==t||"endobj"==t)break;if(t=PDF_GetString(this.Stream),"]"==t||"endobj"==t)break}else r=PDF_StrToIntDef(t,-1),this.IsObjectID(r)&&(this.GetInDeirect_Array(r,e)||(e[e.length]=r));this.Stream.Pos=i},GetObjectType_ArrayofName:function(e){var t,r,i;if(i=this.Stream.Pos,t=PDF_GetString(this.Stream),"["==t)for(;;){if(t=PDF_GetString(this.Stream),"]"==t||"endobj"==t)break;"/"==t[0]&&(e[e.length]=t)}else"/"==t[0]?e[e.length]=t:t[0].match(/[1-9]+/)&&(r=PDF_StrToIntDef(t,-1),this.IsObjectID(r)&&this.GetInDeirect_ArrayofName(r,e));this.Stream.Pos=i},GetMediaBox:function(e){var t,r,i,n=!1,o=-1,a=0,s="";if(!this.IsObjectID(e))return s;for(i=this.Stream.Pos,this.Stream.Pos=parseInt(this.ObjectPosArray[e],10);;)if(r=PDF_GetString(this.Stream),"%"==r)PDF_CommnetSkip(this.Stream);else if("/Parent"==r)r=PDF_GetString(this.Stream),o=PDF_StrToIntDef(r,-1);else{if("/MediaBox"==r){for(;;)if(t=this.Stream.ReadString(1),s+=t,"]"==t)break;n=!0;break}if("("==r)PDF_TextSkip(this.Stream);else if("/Length"==r)a=this.GetObjectType_Integer();else if("stream"==r)t=this.Stream.ReadString(1),"\r"==t&&(t=this.Stream.ReadString(1)),this.Stream.Pos=this.Stream.Pos+a;else if("endobj"==r)break}return n||-1==o||(s=this.GetMediaBox(o)),this.Stream.Pos=i,s},GetPageInfo:function(e){function t(r,i){var n,o,a=new Array,s=0;try{for(r.Stream.Pos=parseInt(r.ObjectPosArray[i],10),o=PDF_GetString(r.Stream),parseInt(o,10)!=i&&r.LoadError(PDFDESIGNER_ERROR_004);;)if(o=PDF_GetString(r.Stream),"%"==o)PDF_CommnetSkip(r.Stream);else if("/Kids"==o)r.GetObjectType_Array(a);else{if("/Page"==o){e[e.length]=i;break}if("("==o)PDF_TextSkip(r.Stream);else if("/Length"==o)s=r.GetObjectType_Integer();else if("stream"==o)n=r.Stream.ReadString(1),"\r"==n&&(n=r.Stream.ReadString(1)),r.Stream.Pos=r.Stream.Pos+s;else if("endobj"==o)break}for(var S=0;S<a.length;S++)t(r,parseInt(a[S],10))}catch(P){}}null==this.Stream&&this.LoadError(PDFDESIGNER_ERROR_005),-1==this.FirstPagesID&&this.LoadError(PDFDESIGNER_ERROR_006),null!=e&&t(this,this.FirstPagesID)},GetFirstPageSize:function(){function e(t,r){var i,n,o,a=new Array;o=0;try{for(t.Stream.Pos=parseInt(t.ObjectPosArray[r],10),n=PDF_GetString(t.Stream),parseInt(n,10)!=r&&t.LoadError(PDFDESIGNER_ERROR_004);;)if(n=PDF_GetString(t.Stream),"%"==n)PDF_CommnetSkip(t.Stream);else if("/Kids"==n)t.GetObjectType_Array(a);else{if("/Page"==n){-1==t.FirstPageID&&(t.FirstPageID=r);break}if("("==n)PDF_TextSkip(t.Stream);else if("/Length"==n)o=t.GetObjectType_Integer();else if("stream"==n)i=t.Stream.ReadString(1),"\r"==i&&(i=t.Stream.ReadString(1)),t.Stream.Pos=t.Stream.Pos+o;else if("endobj"==n)break}for(var s=0;s<a.length;s++)-1==t.FirstPageID&&e(t,parseInt(a[s],10))}catch(S){}}var t;this.FirstPageID=-1,e(this,this.FirstPagesID),-1!=this.FirstPageID&&(t=this.GetMediaBox(this.FirstPageID),this.PageSize=PDF_GetMediaBoxRect(t))},GetPageCount:function(){var e,t;for(t=this.Stream.Pos,this.Stream.Pos=parseInt(this.ObjectPosArray[this.FirstPagesID],10),e=PDF_GetString(this.Stream),parseInt(e,10)!=this.FirstPagesID&&this.LoadError(PDFDESIGNER_ERROR_004);;)if(e=PDF_GetString(this.Stream),"%"==e)PDF_CommnetSkip(this.Stream);else if("/Count"==e)this.PageCount=this.GetObjectType_Integer();else if("endobj"==e)break;this.Stream.Pos=t},GetDocumentCatalogInfo:function(){var e,t,r,i;for(r=0,i=this.Stream.Pos,this.Stream.Pos=parseInt(this.ObjectPosArray[this.RootID],10),t=PDF_GetString(this.Stream),parseInt(t,10)!=this.RootID&&this.LoadError(PDFDESIGNER_ERROR_004);;)if(t=PDF_GetString(this.Stream),"%"==t)PDF_CommnetSkip(this.Stream);else if("/StructTreeRoot"==t)this.Tag=!0;else if("/Outlines"==t)e=PDF_GetString(this.Stream),this.OutlinesID=PDF_StrToIntDef(e,-1);else if("/Pages"==t)e=PDF_GetString(this.Stream),this.FirstPagesID=PDF_StrToIntDef(e,-1);else if("/Metadata"==t)e=PDF_GetString(this.Stream),this.MetadataID=PDF_StrToIntDef(e,-1);else if("("==t)PDF_TextSkip(this.Stream);else if("/Length"==t)r=this.GetObjectType_Integer();else if("stream"==t)e=this.Stream.ReadString(1),"\r"==e&&(e=this.Stream.ReadString(1)),this.Stream.Pos=this.Stream.Pos+r;else if("endobj"==t)break;this.Stream.Pos=i},LoadFromFile:function(e){throw PDFDESIGNER_ERROR_003},LoadFromStream:function(e){function t(e,n){var o,a,s,S,P;for(e.XrefTableList[e.XrefTableList.length]=n,173==n&&(e.Optimize=!0),S=-1,e.Stream.Pos=parseInt(n,10),o=e.Stream.ReadString(4),"xref"!=o&&e.LoadError(PDFDESIGNER_ERROR_007);;){i=PDF_GetString(e.Stream),i.match(/[^0-9]+/)&&e.LoadError(PDFDESIGNER_ERROR_008),i=parseInt(i,10),r=PDF_GetString(e.Stream),r.match(/[^0-9]+/)&&e.LoadError(PDFDESIGNER_ERROR_009),r=parseInt(r,10),-1==e.ObjectCount?e.ObjectCount=i+r:i+r>e.ObjectCount&&(e.ObjectCount=i+r,10),PDF_SeekPos(e.Stream);for(var h=0;r>h;h++)a=e.Stream.ReadString(10),s=e.Stream.ReadString(8),o=e.Stream.ReadString(1),("\r"==o||" "==o)&&(o=e.Stream.ReadString(1),"\n"!=o&&"\r"!=o&&(e.Stream.Pos=e.Stream.Pos-1)),void 0==e.ObjectPosArray[i+h]&&(a.match(/[^0-9]+/)&&e.LoadError(PDFDESIGNER_ERROR_009),e.ObjectPosArray[i+h]=a),"f"==s[7]?e.DeleteObject[i+h]=!0:e.DeleteObject[i+h]=!1;if(P=e.Stream.Pos,o=PDF_GetString(e.Stream),"trailer"==o)break;e.Stream.Pos=P}for(PDF_SeekPos(e.Stream),o=e.Stream.ReadString(2),"<<"!=o&&e.LoadError(PDFDESIGNER_ERROR_010);;)if(o=PDF_GetString(e.Stream),"/Root"==o)o=PDF_GetString(e.Stream),-1==e.RootID&&(e.RootID=o,e.RootID.match(/[^0-9]+/)&&e.LoadError(PDFDESIGNER_ERROR_011),e.RootID=parseInt(e.RootID,10));else if("/Prev"==o)o=PDF_GetString(e.Stream),S=o,S.match(/[^0-9]+/)&&e.LoadError(PDFDESIGNER_ERROR_012),S=parseInt(S,10);else if("/Info"==o)o=PDF_GetString(e.Stream),-1==e.InfoID&&(e.InfoID=o,e.InfoID.match(/[^0-9]+/)&&e.LoadError(PDFDESIGNER_ERROR_013),e.InfoID=parseInt(e.InfoID,10));else if("/Encrypt"==o)e.Encrypt=!0;else if("startxref"==o)break;-1!=S&&t(e,S)}var r,i,n;this.Stream=new TReadStream(e),this.Stream.FileSize<5&&this.LoadError(PDFDESIGNER_ERROR_014),n=this.Stream.ReadString(5),"%PDF-"!=n&&this.LoadError(PDFDESIGNER_ERROR_015),this.Version=PDF_GetString(this.Stream),this.Version.length<3&&this.LoadError(PDFDESIGNER_ERROR_015);for(var o=1;;){if(this.Stream.Pos=this.Stream.FileSize-o,n=this.Stream.ReadString(1),"\n"!=n&&"\r"!=n&&" "!=n){this.Stream.Pos=this.Stream.Pos-"%%EOF".length;break}o++}n=this.Stream.ReadString(5),"%%EOF"!=n&&this.LoadError(PDFDESIGNER_ERROR_016),this.Stream.Pos=this.Stream.Pos-5;for(var a="";;){if(this.Stream.Pos=this.Stream.Pos-1,n=this.Stream.ReadString(1),"\n"!=n&&"\r"!=n&&" "!=n)break;this.Stream.Pos=this.Stream.Pos-1}for(;;){if(this.Stream.Pos=this.Stream.Pos-1,n=this.Stream.ReadString(1),"\n"==n||"\r"==n||" "==n)break;this.Stream.Pos=this.Stream.Pos-1,a=n+a}a.match(/[^0-9]+/)&&this.LoadError(PDFDESIGNER_ERROR_017);var s=parseInt(a,10);t(this,s),-1==this.RootID&&this.LoadError(PDFDESIGNER_ERROR_018),this.GetDocumentCatalogInfo(),-1==this.FirstPagesID&&this.LoadError(PDFDESIGNER_ERROR_019),this.GetPageCount(),-1!=this.FirstPagesID&&this.GetFirstPageSize()}},TPDFParser.prototype={PDFPage_GetResourceStream:function(e,t){var r,i,n,o,a,s=!1,S=-1,P=0,h=null;if(!e.IsObjectID(t))return h;for(n=e.Stream.Pos,e.Stream.Pos=parseInt(e.ObjectPosArray[t],10);;)if(r=PDF_GetString(e.Stream),"%"==r)PDF_CommnetSkip(e.Stream);else if("("==r)PDF_TextSkip(e.Stream);else if("/Parent"==r)r=PDF_GetString(e.Stream),S=PDF_StrToIntDef(r,-1);else{if("/Resources"==r){if(r=PDF_GetString(e.Stream),"<"==r)e.Stream.Pos=e.Stream.Pos-1,o=e.Stream.Pos,PDF_DictionarySkip(e.Stream);else for(o=e.Stream.Pos-r.length;;)if(r=PDF_GetString(e.Stream),"R"==r)break;a=e.Stream.Pos-o,e.Stream.Pos=o,h=new TMemoryStream(e.Stream,o,o+a),e.Stream.Pos=a,s=!0;break}if("/Length"==r)P=e.GetObjectType_Integer(e.Stream);else if("stream"==r)i=e.Stream.ReadString(1),"\r"==i&&e.Stream.ReadString(1),e.Stream.Pos=e.Stream.Pos+P;else if("endobj"==r)break}return s||-1==S||(h=this.PDFPage_GetResourceStream(e,S)),e.Stream.Pos=n,h},PDFPage_GetContentsStream:function(e,t){var r,i,n,o,a,s=0,S=null;if(!e.IsObjectID(t))return S;for(n=e.Stream.Pos,e.Stream.Pos=parseInt(e.ObjectPosArray[t],10);;)if(r=PDF_GetString(e.Stream),"%"==r)PDF_CommnetSkip(e.Stream);else if("("==r)PDF_TextSkip(e.Stream);else{if("/Contents"==r){if(r=PDF_GetString(e.Stream),"["==r)e.Stream.Pos=e.Stream.Pos-1,o=e.Stream.Pos,PDF_ArraySkip(e.Stream);else for(o=e.Stream.Pos-r.length;;)if(r=PDF_GetString(e.Stream),"R"==r)break;a=e.Stream.Pos-o,e.Stream.Pos=o,S=new TMemoryStream(e.Stream,o,o+a),e.Stream.Pos=a;break}if("/Length"==r)s=e.GetObjectType_Integer(e.Stream);else if("stream"==r)i=e.Stream.ReadString(1),"\r"==i&&e.Stream.ReadString(1),e.Stream.Pos=e.Stream.Pos+s;else if("endobj"==r)break}return e.Stream.Pos=n,S},PDFPage_GetRotate:function(e,t){var r,i,n,o=!1,a=-1,s=0,S=0;if(!e.IsObjectID(t))return S;for(n=e.Stream.Pos,e.Stream.Pos=parseInt(e.ObjectPosArray[t],10);;)if(r=PDF_GetString(e.Stream),"%"==r)PDF_CommnetSkip(e.Stream);else if("("==r)PDF_TextSkip(e.Stream);else if("/Parent"==r)r=PDF_GetString(e.Stream),a=PDF_StrToIntDef(r,-1);else{if("/Rotate"==r){S=PDF_StrToIntDef(PDF_GetString(e.Stream),0),o=!0;break}if("/Length"==r)s=e.GetObjectType_Integer(e.Stream);else if("stream"==r)i=e.Stream.ReadString(1),"\r"==i&&e.Stream.ReadString(1),e.Stream.Pos=e.Stream.Pos+s;else if("endobj"==r)break}return o||-1==a||(S=this.PDFPage_GetRotate(e,a)),e.Stream.Pos=n,S},WriteDummyInfo:function(e,t){var r,i,n,o,a=new TMemoryStream(t,0,t.getFileSize());n=e.GetObjectSize(e.InfoID),a.Pos=parseInt(e.ObjectPosArray[e.InfoID],10),i=a.Pos,PDF_GetString(a),PDF_GetString(a),PDF_GetString(a),a.Stream[a.Pos+0]=10,a.Stream[a.Pos+1]=60,a.Stream[a.Pos+2]=60,a.Stream[a.Pos+3]=10,a.Pos=a.Pos+"\n<<\n".length,o=a.Pos-i,r="";for(var s=0;n-o>s;s++)a.Stream[a.Pos+s]=32,r+=" ";a.Pos=a.Pos+r.length,a.Pos=a.Pos-"\n>>\nendobj".length,a.Stream[a.Pos+0]=10,a.Stream[a.Pos+1]=62,a.Stream[a.Pos+2]=62,a.Stream[a.Pos+3]=10,a.Stream[a.Pos+4]=101,a.Stream[a.Pos+5]=110,a.Stream[a.Pos+6]=100,a.Stream[a.Pos+7]=111,a.Stream[a.Pos+8]=98,a.Stream[a.Pos+9]=106,t.Rewrite(a)},Write_ViewerPreferences:function(e,t){(t.ViewerPreferences.HideToolbar||t.ViewerPreferences.HideMenubar||t.ViewerPreferences.HideWindowUI||t.ViewerPreferences.Direction||t.ViewerPreferences.FitWindow||t.ViewerPreferences.CenterWindow||t.ViewerPreferences.DisplayDocTitle||t.PageMode==TPDFPageMode.pmFullScreen)&&(e.WriteString("/ViewerPreferences <<"),t.ViewerPreferences.HideToolbar&&e.WriteString(" /HideToolbar true"),t.ViewerPreferences.HideMenubar&&e.WriteString(" /HideMenubar true"),t.ViewerPreferences.HideWindowUI&&e.WriteString(" /HideWindowUI true"),t.ViewerPreferences.FitWindow&&e.WriteString(" /FitWindow true"),t.ViewerPreferences.CenterWindow&&e.WriteString(" /CenterWindow true"),t.ViewerPreferences.DisplayDocTitle&&e.WriteString(" /DisplayDocTitle true"),t.ViewerPreferences.Direction&&e.WriteString(" /Direction /R2L"),t.PageMode==TPDFPageMode.pmFullScreen&&(t.ViewerPreferences.NonFullScreenPageMode==TPDFPageMode.pmUseOutlines?e.WriteString(" /NonFullScreenPageMode /UseOutlines"):t.ViewerPreferences.NonFullScreenPageMode==TPDFPageMode.pmUseThumbs&&e.WriteString(" /NonFullScreenPageMode /UseThumbs")),e.WriteString(" >>\n"))},Write_PageLayout:function(e,t){t.PageLayout==TPDFPageLayout.plSinglePage?e.WriteString("/PageLayout /SinglePage\n"):t.PageLayout==TPDFPageLayout.plOneColumn?e.WriteString("/PageLayout /OneColumn\n"):t.PageLayout==TPDFPageLayout.plTwoColumnLeft?e.WriteString("/PageLayout /TwoColumnLeft\n"):t.PageLayout==TPDFPageLayout.plTwoColumnRight&&e.WriteString("/PageLayout /TwoColumnRight\n")},Write_PageMode:function(e,t){t.PageMode==TPDFPageMode.pmUseOutlines?e.WriteString("/PageMode /UseOutlines\n"):t.PageMode==TPDFPageMode.pmUseThumbs?e.WriteString("/PageMode /UseThumbs\n"):t.PageMode==TPDFPageMode.pmFullScreen&&e.WriteString("/PageMode /FullScreen\n")},WritePDFHedaer:function(e,t,r,i){function n(){var t=parseInt(i,10),n=0;r.OpenAction.SubType==TPDFOpenActionType.oaXYZ?16==r.OpenAction.Zoom?e.WriteString("/OpenAction ["+t+" "+n+" R /XYZ -32768 -32768 16 ]\n"):8==r.OpenAction.Zoom?e.WriteString("/OpenAction ["+t+" "+n+" R /XYZ -32768 -32768 8 ]\n"):4==r.OpenAction.Zoom?e.WriteString("/OpenAction ["+t+" "+n+" R /XYZ -32768 -32768 4 ]\n"):2==r.OpenAction.Zoom?e.WriteString("/OpenAction ["+t+" "+n+" R /XYZ -32768 -32768 2 ]\n"):1.5==r.OpenAction.Zoom?e.WriteString("/OpenAction ["+t+" "+n+" R /XYZ -32768 -32768 1.5 ]\n"):1.25==r.OpenAction.Zoom?e.WriteString("/OpenAction ["+t+" "+n+" R /XYZ -32768 -32768 1.25 ]\n"):1==r.OpenAction.Zoom?e.WriteString("/OpenAction ["+t+" "+n+" R /XYZ -32768 -32768 1 ]\n"):.75==r.OpenAction.Zoom?e.WriteString("/OpenAction ["+t+" "+n+" R /XYZ -32768 -32768 0.75 ]\n"):.5==r.OpenAction.Zoom?e.WriteString("/OpenAction ["+t+" "+n+" R /XYZ -32768 -32768 0.5 ]\n"):.25==r.OpenAction.Zoom&&e.WriteString("/OpenAction ["+t+" "+n+" R /XYZ -32768 -32768 0.25 ]\n"):r.OpenAction.SubType==TPDFOpenActionType.oaFitBH?e.WriteString("/OpenAction ["+t+" "+n+" R /FitBH -32768 ]\n"):r.OpenAction.SubType==TPDFOpenActionType.oaFit?e.WriteString("/OpenAction ["+t+" "+n+" R /Fit]\n"):r.OpenAction.SubType==TPDFOpenActionType.oaFitH?e.WriteString("/OpenAction ["+t+" "+n+" R /FitH -32768]\n"):t!=parseInt(i,10)&&e.WriteString("/OpenAction ["+t+" "+n+" R /XYZ null null null ]\n")}var o=0;this._ObjectMem.ObjectPosArray[o]=e.getFileSize(),e.WriteString("1 0 obj\n"),e.WriteString("<<\n"),e.WriteString("/Type /Catalog\n"),e.WriteString("/Pages 2 0 R\n"),this.Write_ViewerPreferences(e,r),this.Write_PageMode(e,r),this.Write_PageLayout(e,r),n(),e.WriteString(">>\n"),e.WriteString("endobj\n"),o++,this._ObjectMem.ObjectPosArray[o]=e.getFileSize(),e.WriteString("2 0 obj\n"),e.WriteString("<<\n"),e.WriteString("/Type /Pages\n"),e.WriteString("/Kids [");for(var o=0;o<this._PageList.length;o++)e.WriteString(" "+this._PageList[o]+" 0 R");e.WriteString(" ]\n"),e.WriteString("/Count "+this._PageList.length+"\n"),e.WriteString(">>\n"),e.WriteString("endobj\n")},WritePDFHedaer_Maker:function(e,t,r,i,n){function o(){var r;e.Stream.Pos!=P&&(r=e.Stream.Pos,e.Stream.Pos=P,t.WriteStream(e.Stream,P,r),e.Stream.Pos=e.Stream.Pos+(r-P))}function a(){var r,n;r=-1!=i.OpenAction.ObjectID?parseInt(i.OpenAction.ObjectID,10):e.FirstPageID,n=e.GetGenerationID(r),i.OpenAction.SubType==TPDFOpenActionType.oaXYZ?16==i.OpenAction.Zoom?t.WriteString("/OpenAction ["+r+" "+n+" R /XYZ -32768 -32768 16 ]\n"):8==i.OpenAction.Zoom?t.WriteString("/OpenAction ["+r+" "+n+" R /XYZ -32768 -32768 8 ]\n"):4==i.OpenAction.Zoom?t.WriteString("/OpenAction ["+r+" "+n+" R /XYZ -32768 -32768 4 ]\n"):2==i.OpenAction.Zoom?t.WriteString("/OpenAction ["+r+" "+n+" R /XYZ -32768 -32768 2 ]\n"):1.5==i.OpenAction.Zoom?t.WriteString("/OpenAction ["+r+" "+n+" R /XYZ -32768 -32768 1.5 ]\n"):1.25==i.OpenAction.Zoom?t.WriteString("/OpenAction ["+r+" "+n+" R /XYZ -32768 -32768 1.25 ]\n"):1==i.OpenAction.Zoom?t.WriteString("/OpenAction ["+r+" "+n+" R /XYZ -32768 -32768 1 ]\n"):.75==i.OpenAction.Zoom?t.WriteString("/OpenAction ["+r+" "+n+" R /XYZ -32768 -32768 0.75 ]\n"):.5==i.OpenAction.Zoom?t.WriteString("/OpenAction ["+r+" "+n+" R /XYZ -32768 -32768 0.5 ]\n"):.25==i.OpenAction.Zoom&&t.WriteString("/OpenAction ["+r+" "+n+" R /XYZ -32768 -32768 0.25 ]\n"):i.OpenAction.SubType==TPDFOpenActionType.oaFitBH?t.WriteString("/OpenAction ["+r+" "+n+" R /FitBH -32768 ]\n"):i.OpenAction.SubType==TPDFOpenActionType.oaFit?t.WriteString("/OpenAction ["+r+" "+n+" R /Fit]\n"):i.OpenAction.SubType==TPDFOpenActionType.oaFitH?t.WriteString("/OpenAction ["+r+" "+n+" R /FitH -32768]\n"):r!=e.FirstPageID&&t.WriteString("/OpenAction ["+r+" "+n+" R /XYZ null null null ]\n")}function s(){t.WriteString("/Outlines "+(e.ObjectPosArray.length+1)+" 0 R\n")}function S(t){for(;;)if(t==PDF_GetString(e.Stream))break}var P,h,c,g=!1,D=!1,f=!1,m=!1,l=!1;for(e.Stream.Pos=parseInt(e.ObjectPosArray[e.RootID],10),r.ObjectPosArray[r.ObjectIndex]=t.Pos,PDF_TopLineSkip(e.Stream),t.WriteString(r.ObjectIndex+1+" 0 obj\n");;)if(P=e.Stream.Pos,h=PDF_GetString(e.Stream),""!=h)if("%"!=h){if("("==h)PDF_TextSkip(e.Stream);else{if("/OpenAction"==h){e.Stream.Pos=e.Stream.Pos-"/OpenAction".length,o(),a(),e.Stream.Pos=e.Stream.Pos+"/OpenAction".length,h=PDF_GetString(e.Stream),"["==h?PDF_ArraySkip(e.Stream):h[0].match(/[1-9]+/)?S("R"):"<"==h&&(e.Stream.Pos=e.Stream.Pos+1,PDF_DictionarySkip(e.Stream)),g=!0;continue}if("/PageMode"==h){e.Stream.Pos=e.Stream.Pos-"/PageMode".length,o(),this.Write_PageMode(t,i),e.Stream.Pos=e.Stream.Pos+"/PageMode".length,PDF_NameSkip(e.Stream),D=!0;continue}if("/PageLayout"==h){e.Stream.Pos=e.Stream.Pos-"/PageLayout".length,o(),this.Write_PageLayout(t,i),e.Stream.Pos=e.Stream.Pos+"/PageLayout".length,PDF_NameSkip(e.Stream),f=!0;continue}if("/ViewerPreferences"==h){e.Stream.Pos=e.Stream.Pos-"/ViewerPreferences".length,o(),this.Write_ViewerPreferences(t,i),e.Stream.Pos=e.Stream.Pos+"/ViewerPreferences".length,h=PDF_GetString(e.Stream),h[0].match(/[1-9]+/)?S("R"):"<"==h&&(e.Stream.Pos=e.Stream.Pos-1,PDF_DictionarySkip(e.Stream)),m=!0;continue}if("/Outlines"==h){if(n){e.Stream.Pos=e.Stream.Pos-"/Outlines".length,o(),s(),e.Stream.Pos=e.Stream.Pos+"/Outlines".length,S("R"),l=!0;continue}}else if("endobj"==h){if(o(),!g||!D||!l&&n||!f||!m){var F=new TMemoryStream(t,0,t.getFileSize());for(F.Pos=F.getFileSize(),F.Pos=F.Pos-"endobj".length;;){if(c=F.ReadString(1),">"==c){F.Pos=F.Pos-2,F.Stream=F.Stream.subarray(0,F.Pos);break}F.Pos=F.Pos-2}t.Rewrite(F),t.WriteString("\n"),g||a(),D||this.Write_PageMode(t,i),!l&&n&&s(),f||this.Write_PageLayout(t,i),m||this.Write_ViewerPreferences(t,i),t.WriteString(">>\n"),t.WriteString("endobj")}break}}o()}else PDF_CommnetSkip(e.Stream);t.WriteString("\n"),r.ObjectIndex++},WriteInfo:function(e,t,r){var i=new TPDFCode;t.ObjectPosArray[t.ObjectIndex]=e.getFileSize(),e.WriteString(t.ObjectIndex+1+" 0 obj\n"),e.WriteString("<<\n"),""!=r.Author&&e.WriteString("/Author ("+i.PDFDocEncoding(r.Author)+")\n"),""!=r.Title&&e.WriteString("/Title ("+i.PDFDocEncoding(r.Title)+")\n"),""!=r.Subject&&e.WriteString("/Subject ("+i.PDFDocEncoding(r.Subject)+")\n"),""!=r.Keywords&&e.WriteString("/Keywords ("+i.PDFDocEncoding(r.Keywords)+")\n"),""!=r.Creator&&e.WriteString("/Creator ("+i.PDFDocEncoding(r.Creator)+")\n"),""!=r.Producer&&e.WriteString("/Producer ("+i.PDFDocEncoding(r.Producer)+")\n"),""!=r.CreationDate&&e.WriteString("/CreationDate ("+r.CreationDate+")\n"),""!=r.ModDate&&e.WriteString("/ModDate ("+r.ModDate+")\n"),e.WriteString(">>\n"),e.WriteString("endobj\n"),t.ObjectIndex++},WritePDFFooter:function(e,t){function r(t){var r;t.ObjectPosArray[t.ObjectIndex]=e.getFileSize(),e.WriteString("xref\n"),e.WriteString("0 "+(t.ObjectIndex+1)+"\n"),e.WriteString("0000000000 65535 f \n");for(var r=0;r<t.ObjectIndex;r++)e.WriteString(PDF_ConvertObjectPos([t.ObjectPosArray[r]],10)+" 00000 n \n")}this.WriteInfo(e,this._ObjectMem,t),r(this._ObjectMem),e.WriteString("trailer\n"),e.WriteString("<<\n"),e.WriteString("/Size "+(this._ObjectMem.ObjectIndex+1)+"\n"),e.WriteString("/Info "+this._ObjectMem.ObjectIndex+" 0 R\n"),e.WriteString("/Root 1 0 R\n"),e.WriteString(">>\n"),e.WriteString("startxref\n"),e.WriteString(this._ObjectMem.ObjectPosArray[this._ObjectMem.ObjectIndex]+"\n"),e.WriteString("%%EOF\n")},WritePDFFooter_Maker:function(e,t,r,i){function n(){var i;r.ObjectPosArray[r.ObjectIndex]=t.getFileSize(),t.WriteString("xref\n"),t.WriteString(e.ObjectPosArray.length+" "+(r.ObjectIndex+1-e.ObjectPosArray.length)+"\n");for(var i=e.ObjectPosArray.length-1;i<r.ObjectIndex;i++)t.WriteString(PDF_ConvertObjectPos([r.ObjectPosArray[i]],10)+" 00000 n \n")}this.WriteInfo(t,r,i),n(r),t.WriteString("trailer\n"),t.WriteString("<<\n"),t.WriteString("/Size "+(r.ObjectIndex+1)+"\n"),t.WriteString("/Info "+r.ObjectIndex+" 0 R\n"),t.WriteString("/Root "+e.ObjectPosArray.length+" 0 R\n"),t.WriteString("/Prev "+e.XrefTableList[0]+"\n"),t.WriteString(">>\n"),t.WriteString("startxref\n"),t.WriteString(r.ObjectPosArray[r.ObjectIndex]+"\n"),t.WriteString("%%EOF\n")},GetPageInObjectList:function(e,t,r){function i(e){for(var t=!1,i=new Array,n=e.length,o=r.length,a=0;n>a;a++){t=!1;for(var s=0;o>s;s++)if(r[s]==e[a]){t=!0;break}t||(i[i.length]=e[a])}return i}function n(t,r){var i,n,o,a,s,S=0;try{for(;;)if(i=PDF_GetString(t),""!=i)if("%"!=i){if("("==i)PDF_TextSkip(t);else if(i[0].match(/[1-9]+/))try{if(s=t.Pos,o=PDF_GetString(t),"endobj"==o)break;if(a=PDF_GetString(t),"endobj"==a)break;if(-1!=PDF_StrToIntDef(o,-1)&&"R"==a){
if(!e.IsObjectID(i)){t.Pos=s;continue}r[r.length]=parseInt(i,10)}else t.Pos=s}catch(P){break}else if("/Length"==i)S=e.GetObjectType_Integer(t);else if("stream"==i)n=t.ReadString(1),"\r"==n&&t.ReadString(1),t.Stream.Pos=t.Stream.Pos+S;else if("endobj"==i)break}else PDF_CommnetSkip(t)}catch(P){}}function o(t){var n,a,s,S,P,h,c,g=0,D=new Array;c=e.Stream.Pos,e.Stream.Pos=parseInt(e.ObjectPosArray[t],10);try{for(;;)if(n=PDF_GetString(e.Stream),""!=n)if("%"!=n){if("("==n)PDF_TextSkip(e.Stream);else if(n[0].match(/[1-9]+/))try{if(h=e.Stream.Pos,s=PDF_GetString(e.Stream),"endobj"==s)break;if(S=PDF_GetString(e.Stream),"endobj"==S)break;if(-1!=PDF_StrToIntDef(s,-1)&&"R"==S){if("/Parent"==P){e.Stream.Pos=h;continue}if(!e.IsObjectID(n)){e.Stream.Pos=h;continue}D[D.length]=parseInt(n,10)}else e.Stream.Pos=h}catch(f){break}else if("/Length"==n)g=e.GetObjectType_Integer(e.Stream);else if("stream"==n)a=e.Stream.ReadString(1),"\r"==a&&e.Stream.ReadString(1),e.Stream.Pos=e.Stream.Pos+g;else if("endobj"==n)break;P=n}else PDF_CommnetSkip(e.Stream);if(D=i(D),0!=D.length)for(var m=D.length,l=0;m>l;l++)r[r.length]=D[l],o(parseInt(D[l],10))}finally{e.Stream.Pos=c}}var a=null,s=new Array;try{if(a=this.PDFPage_GetResourceStream(e,t),null!=a&&(a.WriteString("\n endobj\n"),a.Pos=0,n(a,s)),a=this.PDFPage_GetContentsStream(e,t),null!=a&&(a.WriteString("\n endobj\n"),a.Pos=0,n(a,s)),s=i(s),0!=s.length)for(var S=s.length,P=0;S>P;P++)r[r.length]=s[P],o(parseInt(s[P],10))}finally{}},WritePDFPage:function(e,t,r,i,n){function o(e){for(var t=parseInt(e,10),r=-1,o=i.length,a=0;o>a;a++)if(t==i[a]){r=a+n;break}return r}function a(t){function i(){var e;e=t.Pos,e!=n&&(t.Pos=n,r.WriteStream(t,n,e),t.Pos=e)}var n,a,s,S,P,h,c,g=0;for(t.WriteString("\nendobj\n"),t.Pos=0;;)if(n=t.Pos,a=PDF_GetString(t),""!=a)if("%"!=a){if("("==a)PDF_TextSkip(t);else if(a[0].match(/[1-9]+/))try{if(h=t.Pos,S=PDF_GetString(t),"endobj"==S)break;if(P=PDF_GetString(t),"endobj"==P)break;if(-1!=PDF_StrToIntDef(S,-1)&&"R"==P){if(!e.IsObjectID(a)){t.Pos=h;continue}c=t.Pos,t.Pos=h-a.length,i(),r.WriteString(o(a)+" 0 R"),t.Pos=c;continue}t.Pos=h}catch(D){break}else if("/Length"==a)g=e.GetObjectType_Integer(t);else if("stream"==a)s=t.ReadString(1),"\r"==s&&t.ReadString(1),t.Pos=t.Pos+g;else if("endobj"==a)break;i()}else PDF_CommnetSkip(t)}var s=this.PDFPage_GetRotate(e,t),S=e.GetMediaBox(t),P=this.PDFPage_GetContentsStream(e,t),h=this.PDFPage_GetResourceStream(e,t);this._ObjectMem.ObjectPosArray[this._ObjectMem.ObjectIndex]=r.getFileSize();try{r.WriteString(this._ObjectMem.ObjectIndex+1+" 0 obj\n"),this._PageList[this._PageList.length]=this._ObjectMem.ObjectIndex+1+"",r.WriteString("<<\n"),r.WriteString("/Type /Page\n"),r.WriteString("/Parent 2 0 R\n"),""!=S&&r.WriteString("/MediaBox "+S+"\n"),null!=h&&(r.WriteString("/Resources "),a(h),r.WriteString("\n")),null!=P&&(r.WriteString("/Contents "),a(P),r.WriteString("\n")),r.WriteString("/Rotate "+s+"\n"),r.WriteString(">>\n"),r.WriteString("endobj\n"),this._ObjectMem.ObjectIndex++}finally{}},WritePDFObject:function(e,t,r,i,n){function o(){var t;t=e.Stream.Pos,t!=S&&(e.Stream.Pos=S,r.WriteStream(e.Stream,S,t),e.Stream.Pos=t)}function a(e){for(var t=parseInt(e,10),r=-1,o=i.length,a=0;o>a;a++)if(t==i[a]){r=a+n;break}return r}function s(t){var i;i=e.Stream.Pos,e.Stream.Pos=P-t.length,o(),r.WriteString(a(t)+" 0 R"),e.Stream.Pos=i}var S,P,h,c,g,D,f=e.Stream.Pos,m=0;S=e.Stream.Pos,e.Stream.Pos=parseInt(e.ObjectPosArray[t],10),this._ObjectMem.ObjectPosArray[this._ObjectMem.ObjectIndex]=r.getFileSize(),PDF_TopLineSkip(e.Stream),r.WriteString(this._ObjectMem.ObjectIndex+1+" 0 obj\n");try{for(;;)if(S=e.Stream.Pos,h=PDF_GetString(e.Stream),""!=h){if("("==h)PDF_TextSkip(e.Stream);else{if("%"==h){PDF_CommnetSkip(e.Stream);continue}if(h[0].match(/[1-9]+/))try{if(P=e.Stream.Pos,g=PDF_GetString(e.Stream),"endobj"==g){o();break}if(D=PDF_GetString(e.Stream),"endobj"==D){o();break}if(-1!=PDF_StrToIntDef(g,-1)&&"R"==D){if(!e.IsObjectID(h)){e.Stream.Pos=P;continue}s(h);continue}e.Stream.Pos=P}catch(l){break}else if("/Length"==h)m=e.GetObjectType_Integer(e.Stream);else if("stream"==h)c=e.Stream.ReadString(1),"\r"==c&&e.Stream.ReadString(1),e.Stream.Pos=e.Stream.Pos+m;else if("endobj"==h){o();break}}o()}r.WriteString("\n"),this._ObjectMem.ObjectIndex++}finally{e.Stream.Pos=f}}},TPDFCode.prototype={SwapEndian:function(e){for(var t,r=0;r<e.length;r++)t=(255&e[r])<<8,e[r]=t+((65280&e[r])>>8)},IntToHex:function(e){var t=e.toString(16).toUpperCase();return 1==t.length?"0"+t:t},IsHex:function(e){var t=e.charCodeAt(0);return t>=65&&70>=t||t>=97&&102>=t||t>=48&&57>=t?!0:!1},RoundoByte:function(e){return e>255?255:e},DecimalCharToByte:function(e){return e.match(/[0-9]+/)?e.charCodeAt(0)-48:0},ByteToOctalStr:function(e){var t=7&e,r=(56&e)>>3,i=(192&e)>>6;return""+i+r+t},OctalStrToByte:function(e){var t,r,i,n,n,o=this.RoundoByte(e.length);return 0==o?0:(1==o?(t="0",r="0",a3=e[0]):2==o?(t="0",r=e[0],a3=e[1]):(t=e[0],r=e[1],a3=e[2]),i=this.DecimalCharToByte(t),n=this.DecimalCharToByte(r),b3=this.DecimalCharToByte(a3),(i<<6)+(n<<3)+b3)},OctalStrToByteHexStr:function(e){return this.IntToHex(this.OctalStrToByte(e))},ReMoveEscape:function(e){for(var t=Array(),r=0,i=0;i<e.length;i++)92==r&&92==e[i]||92==r&&40==e[i]||92==r&&41==e[i]||92==r&&10==e[i]||92==r&&13==e[i]||92==r&&9==e[i]||92==r&&8==e[i]||92==r&&12==e[i]?t[t.length-1]=e[i]:t[t.length]=e[i],r=e[i];return t},PByteArrayToUnicode:function(e){var t,r=0,i=e.length,n=new Array;for(i%2!=0&&i--;;){if(t=e[r],r++,n[n.length]=t<<8|e[r],r==i)break;if(r++,r==i)break}return String.fromCharCode.apply(null,n)},AsciiHexEncoding:function(e){for(var t,r="",i=0;i<e.length;i++)t=e.charCodeAt(i),r+=t>=256?this.IntToHex(t):"00"+this.IntToHex(t);return r},AsciiHexDeccoding:function(e){var t,r=0,i=new Array;if(""==e)return i;for(;;){if(this.IsHex(e[r])){if(t=e[r],r++,r==e.length)break;this.IsHex(e[r])&&(i[i.length]=parseInt(t+e[r],16))}if(r++,r==e.length)break}return i},PDFDocEncoding:function(e){for(var t,r,i=new Array,n="",o=0;o<e.length;o++)i[i.length]=e.charCodeAt(o);this.SwapEndian(i);for(var o=0;o<i.length;o++)t=(65280&i[o])>>8,r=255&i[o],r>=32&&127>=r?n+=92==r?"\\\\":40==r?"\\(":41==r?"\\)":String.fromCharCode(r):n=n+"\\"+this.ByteToOctalStr(r),t>=32&&127>=t?n+=92==t?"\\\\":40==t?"\\(":41==t?"\\)":String.fromCharCode(t):n=n+"\\"+this.ByteToOctalStr(t);return""!=n&&(n="\\376\\377"+n),n},PDFDocDecoding:function(e,t){var r,i,n,o,a="",s=0,S="\\376\\377",P=8;if(""==e)return"";for(r=e,r.length>=P&&r.slice(0,8)==S&&(s=8);;){if("\\"==r[s]){if(s++,s==r.length)break;if("\\"==r[s])a+=92..toString(16).toUpperCase();else if("("==r[s])a+=40..toString(16).toUpperCase();else if(")"==r[s])a+=41..toString(16).toUpperCase();else if("n"==r[s])a+=10..toString(16).toUpperCase();else if("r"==r[s])a+=13..toString(16).toUpperCase();else if("t"==r[s])a+=9..toString(16).toUpperCase();else if("b"==r[s])a+=8..toString(16).toUpperCase();else if("f"==r[s])a+=12..toString(16).toUpperCase();else if("\n"==r[s]||"\r"==r[s])"\r"==r[s]&&(s++,"\n"!=r[s]&&s--);else if(r[s].match(/[0-9]+/)){if(i=r[s],s++,s==r.length){a+=this.OctalStrToByteHexStr(i);break}if(!r[s].match(/[0-9]+/)){a+=this.OctalStrToByteHexStr(i);continue}if(n=r[s],s++,s==r.length){a+=this.OctalStrToByteHexStr(i+n);break}if(!r[s].match(/[0-9]+/)){a+=this.OctalStrToByteHexStr(i+n);continue}o=r[s],a+=this.OctalStrToByteHexStr(i+n+o)}}else a+=this.IntToHex(r[s].charCodeAt(0));if(s++,s==r.length)break}return t?String.fromCharCode.apply(null,this.AsciiHexDeccoding(a)):this.PByteArrayToUnicode(this.AsciiHexDeccoding(a))},GetPDFTextStream:function(e){for(var t,r,i,n,o,a,s=new Array,S=!1;;){if(t=e.Read(1)[0],void 0==t||null==t)return void 0;if(40==t){S=!1;break}if(60==t){S=!0;break}}for(;;){if(t=e.Read(1)[0],void 0==t||null==t)return void 0;if(92==t){if(r=e.Read(1)[0],void 0==r||null==r)return void 0;s[s.length]=t,s[s.length]=r}else if(41==t||62==t){if(41==t&&!S||62==t&&S)break;s[s.length]=t}else s[s.length]=t}return s.length<2?this.PDFDocDecoding(String.fromCharCode.apply(null,s),!0):(i=s[0],n=s[1],254==i&&255==n?this.PByteArrayToUnicode(this.ReMoveEscape(s).slice(2)):(i=String.fromCharCode(s[0]),n=String.fromCharCode(s[1]),"\\"==i&&"3"==n?this.PDFDocDecoding(String.fromCharCode.apply(null,s),!1):"\\"==i?this.PDFDocDecoding(String.fromCharCode.apply(null,s),!0):s.length<4?this.PDFDocDecoding(String.fromCharCode.apply(null,s),!0):(i=String.fromCharCode(s[0]).toUpperCase(),n=String.fromCharCode(s[1]).toUpperCase(),o=String.fromCharCode(s[2]).toUpperCase(),a=String.fromCharCode(s[3]).toUpperCase(),"F"==i&&"E"==n&&"F"==o&&"F"==a?this.PByteArrayToUnicode(this.ReMoveEscape(this.AsciiHexDeccoding(String.fromCharCode.apply(null,s))).slice(2)):this.PDFDocDecoding(String.fromCharCode.apply(null,s),!0))))}},TPDFDocInfo.prototype={DateTimeToStr:function(e){var t,r,i,n,o,a,s;return e.length>=14?(t=e.slice(0,4),r=e.slice(4,6),i=e.slice(6,8),n=e.slice(8,10),o=e.slice(10,12),a=e.slice(12,14),s=PDF_StrToIntDef(t,-1),s>=0&&9999>=s||(t="2000"),s=PDF_StrToIntDef(r,-1),r>=1&&12>=r||(r="01"),s=PDF_StrToIntDef(i,-1),i>=1&&31>=i||(i="01"),s=PDF_StrToIntDef(n,-1),n>=0&&23>=n||(n="00"),s=PDF_StrToIntDef(o,-1),o>=0&&59>=o||(o="00"),s=PDF_StrToIntDef(a,-1),a>=0&&59>=a||(a="00"),t+r+i+n+o+a):""},GetPDFDateStream:function(e){for(var t,r="";;){if(t=e.ReadString(1),")"==t)break;(t.match(/[0-9]+/)||"+"==t||"-"==t||"z"==t||"Z)"==t||"'"==t)&&(r+=t)}return r},GetPDFDocInfo:function(e){var t,r,i,n=new TPDFCode;if(e.Encrypt&&e.LoadError(PDFDESIGNER_ERROR_025),e.IsObjectID(e.InfoID)){if(e.DeleteObject[e.InfoID])return;for(i=e.GetObjectStream(e.InfoID),PDF_TopLineSkip(i);;)if(t=PDF_GetString(i),""!=t)if("/Title"==t){if(r=n.GetPDFTextStream(i),void 0==r)break;this.Title=r}else if("/Subject"==t){if(r=n.GetPDFTextStream(i),void 0==r)break;this.Subject=r}else if("/Author"==t){if(r=n.GetPDFTextStream(i),void 0==r)break;this.Author=r}else if("/Keywords"==t){if(r=n.GetPDFTextStream(i),void 0==r)break;this.Keywords=r}else if("/Creator"==t){if(r=n.GetPDFTextStream(i),void 0==r)break;this.Creator=r}else if("/Producer"==t){if(r=n.GetPDFTextStream(i),void 0==r)break;this.Producer=r}else if("/ModDate"==t){if(r=n.GetPDFTextStream(i),void 0==r)break;this.ModDate=r}else if("/CreationDate"==t){if(r=n.GetPDFTextStream(i),void 0==r)break;this.CreationDate=r}else if("/Trapped"==t)t=PDF_GetString(i),"/True"==t&&(this.Trapped=!0),"/False"==t&&(this.Trapped=!1),"/Unknown"==t&&(this.Trapped=!1);else if("("==t)PDF_TextSkip(i);else if("%"==t)PDF_CommnetSkip(i);else if("endobj"==t)break}}};var TPDFPageLayout={plDefault:0,plSinglePage:1,plOneColumn:2,plTwoColumnLeft:3,plTwoColumnRight:4},TPDFPageMode={pmDefault:0,pmUseNone:1,pmUseOutlines:2,pmUseThumbs:3,pmFullScreen:4},TPDFOpenActionType={oaDefault:0,oaXYZ:1,oaFit:2,oaFitH:3,oaFitV:4,oaFitR:5,oaFitB:6,oaFitBH:7,oaFitBV:8};TPDFOpenAction.prototype={Assign:function(e){this.Left=e.Left,this.Top=e.Top,this.Right=e.Right,this.Bottom=e.Bottom,this.Zoom=e.Zoom,this.ObjectID=e.ObjectID,this.GenerationID=e.GenerationID,this.SubType=e.SubType}},TPDFViewerPreferences.prototype={Assign:function(e){this.HideToolbar=e.HideToolbar,this.HideMenubar=e.HideMenubar,this.HideWindowUI=e.HideWindowUI,this.FitWindow=e.FitWindow,this.CenterWindow=e.CenterWindow,this.Direction=e.Direction,this.DisplayDocTitle=e.DisplayDocTitle,this.NonFullScreenPageMode=e.NonFullScreenPageMode}},TPDFDocView.prototype={Assign:function(e){this.PageMode=e.PageMode,this.PageLayout=e.PageLayout,this.OpenAction=e.OpenAction,this.ViewerPreferences=e.ViewerPreferences},GetDeirect_ViewerPreferences:function(e){function t(e){return"true"==e.toLowerCase()?!0:!1}for(var r;;)if(r=PDF_GetString(e),""!=r)if("/"==r[0])"/HideToolbar"==r?this.ViewerPreferences.HideToolbar=t(PDF_GetString(e)):"/HideMenubar"==r?this.ViewerPreferences.HideMenubar=t(PDF_GetString(e)):"/HideWindowUI"==r?this.ViewerPreferences.HideWindowUI=t(PDF_GetString(e)):"/FitWindow"==r?this.ViewerPreferences.FitWindow=t(PDF_GetString(e)):"/CenterWindow"==r?this.ViewerPreferences.CenterWindow=t(PDF_GetString(e)):"/DisplayDocTitle"==r?this.ViewerPreferences.DisplayDocTitle=t(PDF_GetString(e)):"/NonFullScreenPageMode"==r?(r=PDF_GetString(e),"/UseNone"==r?this.ViewerPreferences.NonFullScreenPageMode=TPDFPageMode.pmUseNone:"/UseOutlines"==r?this.ViewerPreferences.NonFullScreenPageMode=TPDFPageMode.pmUseOutlines:"/UseThumbs"==r?this.ViewerPreferences.NonFullScreenPageMode=TPDFPageMode.pmUseThumbs:this.ViewerPreferences.NonFullScreenPageMode=TPDFPageMode.pmDefault):("/Direction"==r||"/PageDirection"==r)&&(r=PDF_GetString(e),"/R2L"==r&&(this.ViewerPreferences.Direction=!0));else if("("==r)PDF_TextSkip(e);else if("%"==r)PDF_CommnetSkip(e);else if(">"==r)break},GetInDeirect_ViewerPreferences:function(e,t){var r,i;i=e.Stream.Pos,e.Stream.Pos=parseInt(e.ObjectPosArray[t],10);try{for(PDF_TopLineSkip(e.Stream);;)if(r=PDF_GetString(e.Stream),"%"==r)PDF_CommnetSkip(e.Stream);else{if("<"==r){e.Stream.Pos=e.Stream.Pos+1,this.GetDeirect_ViewerPreferences(e.Stream);break}if("endobj"==r)break}}finally{e.Stream.Pos=i}},GetDeirect_OpenAction_Array:function(e){var t;t=PDF_GetString(e),"("==t?PDF_TextSkip(e):t[0].match(/[1-9]+/)&&(this.OpenAction.ObjectID=PDF_StrToIntDef(t,-1),this.OpenAction.GenerationID=PDF_StrToIntDef(PDF_GetString(e),-1),"R"!=PDF_GetString(e)&&(this.OpenAction.ObjectID=-1,this.OpenAction.GenerationID=-1),t=PDF_GetString(e),"/Fit"==t?this.OpenAction.SubType=TPDFOpenActionType.oaFit:"/FitH"==t?(this.OpenAction.SubType=TPDFOpenActionType.oaFitH,this.OpenAction.Top=PDF_StrToFloatDef(PDF_GetString(e),-1)):"/FitV"==t?(this.OpenAction.SubType=TPDFOpenActionType.oaFitV,this.OpenAction.Left=PDF_StrToFloatDef(PDF_GetString(e),-1)):"/FitR"==t?(this.OpenAction.SubType=TPDFOpenActionType.oaFitR,this.OpenAction.Left=PDF_StrToFloatDef(PDF_GetString(e),-1),this.OpenAction.Bottom=PDF_StrToFloatDef(PDF_GetString(e),-1),this.OpenAction.Right=PDF_StrToFloatDef(PDF_GetString(e),-1),this.OpenAction.Top=PDF_StrToFloatDef(PDF_GetString(e),-1)):"/FitB"==t?this.OpenAction.SubType=TPDFOpenActionType.oaFitB:"/FitBH"==t?(this.OpenAction.SubType=TPDFOpenActionType.oaFitBH,this.OpenAction.Top=PDF_StrToFloatDef(PDF_GetString(e),-1)):"/FitBV"==t?(this.OpenAction.SubType=TPDFOpenActionType.oaFitBV,this.OpenAction.Left=PDF_StrToFloatDef(PDF_GetString(e),-1)):"/XYZ"==t?(this.OpenAction.SubType=TPDFOpenActionType.oaXYZ,this.OpenAction.Left=PDF_StrToFloatDef(PDF_GetString(e),-1),this.OpenAction.Top=PDF_StrToFloatDef(PDF_GetString(e),-1),this.OpenAction.Zoom=PDF_StrToFloatDef(PDF_GetString(e),-1)):this.OpenAction.SubType=TPDFOpenActionType.oaDefault)},GetDeirect_OpenAction_Dictionary:function(e){for(var t;;)if(t=PDF_GetString(e),"/D"==t)t=PDF_GetString(e),"["==t&&this.GetDeirect_OpenAction_Array(e);else if("("==t)PDF_TextSkip(e);else if("%"==t)PDF_CommnetSkip(e);else if(">"==t)break},GetInDeirect_OpenAction:function(e,t){var r,i;i=e.Stream.Pos,e.Stream.Pos=parseInt(e.ObjectPosArray[t],10);try{for(PDF_TopLineSkip(e.Stream);;)if(r=PDF_GetString(e.Stream),"%"==r)PDF_CommnetSkip(e.Stream);else{if("<"==r){e.Stream.Pos=e.Stream.Pos+1,this.GetDeirect_OpenAction_Dictionary(e.Stream);break}if("["==r){this.GetDeirect_OpenAction_Array(e.Stream);break}if("endobj"==r)break}}finally{e.Stream.Pos=i}},GetPDFDocView:function(e){var t,r;if(e.IsObjectID(e.RootID)&&!e.Encrypt){r=e.Stream.Pos,e.Stream.Pos=parseInt(e.ObjectPosArray[e.RootID],10);try{for(PDF_TopLineSkip(e.Stream);;)if(t=PDF_GetString(e.Stream),"/PageLayout"==t)t=PDF_GetString(e.Stream),"/SinglePage"==t?this.PageLayout=TPDFPageLayout.plSinglePage:"/OneColumn"==t?this.PageLayout=TPDFPageLayout.plOneColumn:"/TwoColumnLeft"==t?this.PageLayout=TPDFPageLayout.plTwoColumnLeft:"/TwoColumnRight"==t?this.PageLayout=TPDFPageLayout.plTwoColumnRight:this.PageLayout=TPDFPageLayout.plDefault;else if("/PageMode"==t)t=PDF_GetString(e.Stream),"/UseNone"==t?this.PageMode=TPDFPageMode.pmUseNone:"/UseOutlines"==t?this.PageMode=TPDFPageMode.pmUseOutlines:"/UseThumbs"==t?this.PageMode=TPDFPageMode.pmUseThumbs:"/FullScreen"==t?this.PageMode=TPDFPageMode.pmFullScreen:this.PageMode=TPDFPageMode.pmDefault;else if("/ViewerPreferences"==t)t=PDF_GetString(e.Stream),"<"==t?(e.Stream.Pos=e.Stream.Pos+1,this.GetDeirect_ViewerPreferences(e.Stream)):t[0].match(/[1-9]+/)&&e.IsObjectID(t)&&this.GetInDeirect_ViewerPreferences(e,parseInt(t,10));else if("/OpenAction"==t)t=PDF_GetString(e.Stream),"["==t?this.GetDeirect_OpenAction_Array(e.Stream):"<"==t?this.GetDeirect_OpenAction_Dictionary(e.Stream):t[0].match(/[1-9]+/)&&e.IsObjectID(t)&&this.GetInDeirect_OpenAction(e,parseInt(t,10));else if("("==t)PDF_TextSkip(e.Stream);else if("%"==t)PDF_CommnetSkip(e.Stream);else if("endobj"==t)break}finally{e.Stream.Pos=r}}}},TPDFCombine.prototype={SaveToFile:function(e,t,r){var i=new TFileStream,n=0,o="1.4";this._BassID=3,this._PageList=new Array;for(var a=new TPDFParser(this._ObjectMem,this._PageList),s=0;s<t.length;s++)t[s].Encrypt&&t[s].LoadError(PDFDESIGNER_ERROR_025),n+=t[s].PageCount;i.WriteString(o+"\n"),this._ObjectMem.ObjectIndex=this._ObjectMem.ObjectIndex+2;for(var s=0;s<t.length;s++){void 0!=r&&setTimeout(r,500,Math.floor(s/t.length*100),s+1,t.length),0!=s&&(this._BassID=this._ObjectMem.ObjectIndex+1);var S=new Array;t[s].GetPageInfo(S);for(var P=0;P<t[s].PageCount;P++)a.GetPageInObjectList(t[s],S[P],S);for(var h=PDF_OverlappingCut(S),P=0;P<t[s].PageCount;P++)a.WritePDFPage(t[s],S[P],i,h,this._BassID);for(var c=h.length,P=t[s].PageCount;c>P;P++)a.WritePDFObject(t[s],h[P],i,h,this._BassID)}a.WritePDFHedaer(i,this._ObjectMem,this.View,this._PageList[0]),a.WritePDFFooter(i,this.Info),void 0!=r&&setTimeout(r,500,100,t.length,t.length),i.SaveToFile(e)}},TPDFKnife.prototype={SaveToFile:function(e,t,r,i){var n=new TFileStream,o=new Array,a="1.4";this._BassID=3,this._PageList=new Array;var s=new TPDFParser(this._ObjectMem,this._PageList);t.Encrypt&&t.LoadError(PDFDESIGNER_ERROR_025),(1>r||i>t.PageCount||r>i)&&t.LoadError(PDFDESIGNER_ERROR_030),n.WriteString(a+"\n"),this._ObjectMem.ObjectIndex=this._ObjectMem.ObjectIndex+2;var S=new Array;t.GetPageInfo(S);for(var P=r-1;i>P;P++)P>=0&&P<=S.length-1&&(o[o.length]=S[P]);S=new Array;for(var P=0;P<o.length;P++)S[S.length]=parseInt(o[P],10);for(var P=0;P<S.length;P++)s.GetPageInObjectList(t,S[P],o);for(var h=PDF_OverlappingCut(o),P=0;P<S.length;P++)s.WritePDFPage(t,S[P],n,h,this._BassID);for(var c=h.length,P=S.length;c>P;P++)s.WritePDFObject(t,h[P],n,h,this._BassID);s.WritePDFHedaer(n,this._ObjectMem,this.View,this._PageList[0]),s.WritePDFFooter(n,this.Info),n.SaveToFile(e)}},TPDFDeletePage.prototype={SaveToFile:function(e,t,r,i){var n=new TFileStream,o=new Array,a="1.4";this._BassID=3,this._PageList=new Array;var s=new TPDFParser(this._ObjectMem,this._PageList);t.Encrypt&&t.LoadError(PDFDESIGNER_ERROR_025),(1>r||i>t.PageCount||r>i)&&t.LoadError(PDFDESIGNER_ERROR_030),1==r&&t.PageCount==i&&t.LoadError(PDFDESIGNER_ERROR_035),n.WriteString(a+"\n"),this._ObjectMem.ObjectIndex=this._ObjectMem.ObjectIndex+2;var S=new Array;t.GetPageInfo(S);for(var P=0;P<t.PageCount;P++)P+1>=r&&i>=P+1||(o[o.length]=S[P]);S=new Array;for(var P=0;P<o.length;P++)S[S.length]=parseInt(o[P],10);for(var P=0;P<S.length;P++)s.GetPageInObjectList(t,S[P],o);for(var h=PDF_OverlappingCut(o),P=0;P<S.length;P++)s.WritePDFPage(t,S[P],n,h,this._BassID);for(var c=h.length,P=S.length;c>P;P++)s.WritePDFObject(t,h[P],n,h,this._BassID);s.WritePDFHedaer(n,this._ObjectMem,this.View,this._PageList[0]),s.WritePDFFooter(n,this.Info),n.SaveToFile(e)}},TPDFRotatePage.prototype={SaveToFile:function(e,t,r,i,n){function o(e){var t;e.ObjectPosArray[e.ObjectIndex]=c.getFileSize(),c.WriteString("xref\n"),c.WriteString("0 "+(e.ObjectIndex+1)+"\n"),c.WriteString("0000000000 65535 f \n");for(var t=0;t<e.ObjectPosArray.length-1;t++)c.WriteString(PDF_ConvertObjectPos([e.ObjectPosArray[t]],10)+" "+PDF_ConvertObjectPos([P[t]],5)+" n \n")}function a(e){for(var t=0;t<h.length;t++)if(h[t]==e)return!0;return!1}function s(e,r,i,n,o,a){function s(){var r;r=t.Stream.Pos,r!=S&&(t.Stream.Pos=S,e.WriteStream(t.Stream,S,r),t.Stream.Pos=r)}var S,P,h,c=!1,g=0,D=t.Stream.Pos;for(t.Stream.Pos=parseInt(t.ObjectPosArray[r],10),PDF_TopLineSkip(t.Stream),e.WriteString(a.ObjectIndex+1+" "+n+" obj\n");;)if(S=t.Stream.Pos,P=PDF_GetString(t.Stream),""!=P)if("%"!=P){if("("==P)PDF_TextSkip(t.Stream);else{if("/Rotate"==P){c=!0,P=PDF_GetString(t.Stream),h=PDF_StrToIntDef(P,0),t.Stream.Pos=t.Stream.Pos-P.length,s(),o=1==o?h+90>=360?h+90-360:h+90:2==o?0>h-90?270:h-90:3==o?h+180>=360?h+180-360:h+180:0,e.WriteString(o+"\n"),t.Stream.Pos=t.Stream.Pos+P.length;continue}if("/Length"==P)g=t.GetObjectType_Integer(t.Stream);else if("stream"==P);else if("endobj"==P){if(s(),!c){var f=new TMemoryStream(e,0,e.getFileSize());for(f.Pos=f.getFileSize(),f.Pos=f.Pos-"endobj".length;;){if(h=f.ReadString(1),">"==h){f.Pos=f.Pos-2,f.Stream=f.Stream.subarray(0,f.Pos);break}f.Pos=f.Pos-2}e.Rewrite(f),o=1==o?90:2==o?270:3==o?180:0,e.WriteString("\n"),e.WriteString("/Rotate "+o+"\n"),e.WriteString(">>\n"),e.WriteString("endobj")}break}}s()}else PDF_CommnetSkip(t.Stream);t.Stream.Pos=D}var S,P=new Array,h=new Array,c=new TFileStream,g=new Array;t.Encrypt&&t.LoadError(PDFDESIGNER_ERROR_025),(1>i||n>t.PageCount||i>n)&&t.LoadError(PDFDESIGNER_ERROR_030),r>=1&&3>=r||t.LoadError(PDFDESIGNER_ERROR_040),c.WriteString(t.Version+"\n"),t.GetPageInfo(g);for(var D=i-1;n>D;D++)h[h.length]=parseInt(g[D],10);for(var D=1;D<t.ObjectPosArray.length;D++)t.DeleteObject[D]?(this._ObjectMem.ObjectPosArray[this._ObjectMem.ObjectIndex]=c.Pos,c.WriteString(this._ObjectMem.ObjectIndex+1+" 0 obj\n"),c.WriteString("<<\n"),c.WriteString(">>\n"),c.WriteString("endobj\n"),P[this._ObjectMem.ObjectIndex]=0):(t.Stream.Pos=parseInt(t.ObjectPosArray[this._ObjectMem.ObjectIndex+1],10),PDF_GetString(t.Stream),P[this._ObjectMem.ObjectIndex]=parseInt(PDF_GetString(t.Stream),10),this._ObjectMem.ObjectPosArray[this._ObjectMem.ObjectIndex]=c.getFileSize(),S=t.GetObjectSize(D),a(D)?s(c,D,S,P[this._ObjectMem.ObjectIndex],r,this._ObjectMem):(t.Stream.Pos=parseInt(t.ObjectPosArray[D],10),c.WriteStream(t.Stream,t.Stream.Pos,t.Stream.Pos+S)),c.WriteString("\n")),this._ObjectMem.ObjectIndex++;o(this._ObjectMem),c.WriteString("trailer\n"),c.WriteString("<<\n"),c.WriteString("/Size "+(this._ObjectMem.ObjectIndex+1)+"\n"),-1!=t.InfoID&&c.WriteString("/Info "+t.InfoID+" 0 R\n"),c.WriteString("/Root "+t.RootID+" 0 R\n"),c.WriteString(">>\n"),c.WriteString("startxref\n"),c.WriteString(this._ObjectMem.ObjectPosArray[this._ObjectMem.ObjectIndex]+"\n"),c.WriteString("%%EOF\n"),c.SaveToFile(e)}},TPDFInfoMaker.prototype={PageIDtoPageNumber:function(e,t){for(var r=parseInt(e,10),i=0;i<t.length;i++)if(r==parseInt(t[i],10))return i+1;return-1},PageNumbertoPageID:function(e,t){var r=e-1;return r>=0&&r<t.length?parseInt(t[r],10):-1},SaveToFile:function(e,t){var r=new TFileStream;t.Encrypt&&t.LoadError(PDFDESIGNER_ERROR_025),this._ObjectMem.ObjectIndex=t.ObjectPosArray.length-1;var i=new TPDFParser(this._ObjectMem,null);t.Stream.Pos=0,r.WriteStream(t.Stream,"%PDF-".length,t.Stream.FileSize),r.Pos=r.getFileSize(),i.WritePDFHedaer_Maker(t,r,this._ObjectMem,this.View,!1),i.WritePDFFooter_Maker(t,r,this._ObjectMem,this.Info),-1!=t.InfoID&&i.WriteDummyInfo(t,r),r.SaveToFile(e)}},TPDFNode.prototype={Get:function(e){if(0==this.ChildNodes.GetCount())throw PDFDESIGNER_ERROR_050;if(0>e||e>this.ChildNodes.GetCount()-1)throw PDFDESIGNER_ERROR_051;return this.ChildNodes[e]},AddChild:function(e,t,r,i,n,o,a){if(this.Level>=4)throw PDFDESIGNER_ERROR_052;return this.ChildNodes.Add(this,this.Level+1,e,t,r,i,n,o,a)},GetCount:function(){return this.ChildNodes.GetCount()},GetChildCount:function(){var e=0;if(0==this.ChildNodes.GetCount())return e;e=this.ChildNodes.GetCount();for(var t=0;t<this.ChildNodes.GetCount();t++){var r=this.ChildNodes.Get(t);e+=r.GetChildCount()}return e}},TPDFNodeList.prototype={GetCount:function(){return this._list.length},Add:function(e,t,r,i,n,o,a,s,S){var P=new TPDFNode(e,t,r,i,n,o,a,s,S);return this._list[this._list.length]=P,P},Get:function(e){if(0==this._list.length)throw PDFDESIGNER_ERROR_053;if(0>e||e>this._list.length-1)throw PDFDESIGNER_ERROR_051;return this._list[e]}},TPDFOutLineManager.prototype={Get:function(e){if(0==this.Node.GetCount())throw PDFDESIGNER_ERROR_053;if(0>e||e>this.Node.GetCount()-1)throw PDFDESIGNER_ERROR_051;return this.Node.Get(e)},AddRoot:function(e,t,r,i,n,o,a){return this.Node.Add(null,0,e,t,r,i,n,o,a)},GetCount:function(){return this.Node.GetCount()},GetNodeCount:function(){for(var e=this.Node.GetCount(),t=0;t<this.Node.GetCount();t++){var r=this.Node.Get(t);e+=r.GetChildCount()}return e},GetFirstNode:function(){return 0==this.Node.GetCount()?null:this.Node.Get(0)},GetLastNode:function(){var e;if(0==this.Node.GetCount())return null;for(e=this.Node.Get(this.Node.GetCount()-1);;){if(0==e.GetCount())break;e=e.Get(e.GetCount()-1)}return e},SaveToStream:function(e,t,r){function i(e,t,r,i){return""==i?e/255+" "+t/255+" "+r/255:e/255+" "+t/255+" "+r/255+" "+i}function n(a,s){var S,P;P=-1;for(var c=0;c<a.GetCount();c++){if(S=a.ChildNodes.Get(c),S._ID=r.ObjectIndex+1,r.ObjectPosArray[r.ObjectIndex]=t.getFileSize(),t.WriteString(r.ObjectIndex+1+" 0 obj\n",[r.ObjectIndex+1]),t.WriteString("<<\n"),t.WriteString("/Parent "+S.Parent._ID+" 0 R\n"),-1!=S.Page){if(S.Page>s.length)throw PDFDESIGNER_ERROR_030;if(S.ShowPos<0)t.WriteString("/Dest [ "+s[S.Page-1]+" 0 R /XYZ null null null ]\n");else{var g=e.GetMediaBox(s[S.Page-1]);o=PDF_GetMediaBoxRect(g).Bottom,t.WriteString(-1!=o?"/Dest [ "+s[S.Page-1]+" 0 R /XYZ null "+(o-S.ShowPos)+" null ]\n":"/Dest [ "+s[S.Page-1]+" 0 R /XYZ null null null ]\n")}}else t.WriteString("/A << /S /URI /URI ("+S.URL+") >>\n");t.WriteString("/Title ("+h.PDFDocEncoding(S.Caption)+")\n"),0!=S.GetCount()&&(t.WriteString("/First "+(r.ObjectIndex+2)+" 0 R\n"),t.WriteString("/Last "+(r.ObjectIndex+1+S.GetChildCount())+" 0 R\n")),c!=a.GetCount()-1&&t.WriteString("/Next "+(r.ObjectIndex+2+S.GetChildCount())+" 0 R\n"),0!=c&&t.WriteString("/Prev "+P+" 0 R\n"),t.WriteString("/Count "+S.GetChildCount()+"\n"),null!=S.Color&&t.WriteString("/C ["+i(S.Color.Red,S.Color.Green,S.Color.Blue,"")+"]\n"),S.Bold&&S.Italic?t.WriteString("/F 3\n"):S.Bold&&!S.Italic?t.WriteString("/F 2\n"):!S.Bold&&S.Italic&&t.WriteString("/F 1\n"),t.WriteString(">>\n"),t.WriteString("endobj\n"),r.ObjectIndex++,P=r.ObjectIndex,0!==S.Count&&n(S,s)}}var o,a,s,S,P,h=new TPDFCode,c=-1;if(e.GetPageInfo(this._PageList),0==this.GetCount())return c;c=r.ObjectIndex+1,S=-1,NodeCnt=this.GetNodeCount(),a=this.GetCount(),r.ObjectPosArray[r.ObjectIndex]=t.getFileSize(),t.WriteString(r.ObjectIndex+1+" 0 obj\n"),t.WriteString("<<\n"),t.WriteString("/Type /Outlines\n"),0!=NodeCnt&&(t.WriteString("/First "+(r.ObjectIndex+2)+" 0 R\n"),t.WriteString("/Last "+(r.ObjectIndex+1+NodeCnt)+" 0 R\n")),t.WriteString("/Count "+NodeCnt+"\n"),t.WriteString(">>\n"),t.WriteString("endobj\n"),r.ObjectIndex++,s=r.ObjectIndex;for(var g=0;a>g;g++){if(P=this.Node.Get(g),P._ID=r.ObjectIndex+1,r.ObjectPosArray[r.ObjectIndex]=t.getFileSize(),t.WriteString(r.ObjectIndex+1+" 0 obj\n"),t.WriteString("<<\n"),t.WriteString("/Parent "+s+" 0 R\n"),-1!=P.Page){if(P.Page>this._PageList.length)throw PDFDESIGNER_ERROR_030;if(P.ShowPos<0)t.WriteString("/Dest [ "+this._PageList[P.Page-1]+" 0 R /XYZ null null null ]\n");else{var D=e.GetMediaBox(this._PageList[P.Page-1]);o=PDF_GetMediaBoxRect(D).Bottom,t.WriteString(-1!=o?"/Dest [ "+this._PageList[P.Page-1]+" 0 R /XYZ null "+(o-P.ShowPos)+" null ]\n":"/Dest [ "+this._PageList[P.Page-1]+" 0 R /XYZ null null null ]\n")}}else t.WriteString("/A << /S /URI /URI ("+P.URL+") >>\n");t.WriteString("/Title ("+h.PDFDocEncoding(P.Caption)+")\n"),0!=P.GetCount()&&(t.WriteString("/First "+(r.ObjectIndex+2)+" 0 R\n"),t.WriteString("/Last "+(r.ObjectIndex+1+P.GetChildCount())+" 0 R\n")),g!=a-1&&t.WriteString("/Next "+(r.ObjectIndex+2+P.GetChildCount())+" 0 R\n"),0!=g&&t.WriteString("/Prev "+S+" 0 R\n"),t.WriteString("/Count "+P.GetChildCount()+"\n"),null!=P.Color&&t.WriteString("/C ["+i(P.Color.Red,P.Color.Green,P.Color.Blue,"")+"]\n"),P.Bold&&P.Italic?t.WriteString("/F 3\n"):P.Bold&&!P.Italic?t.WriteString("/F 2\n"):!P.Bold&&P.Italic&&t.WriteString("/F 1\n"),t.WriteString(">>\n"),t.WriteString("endobj\n"),r.ObjectIndex++,S=r.ObjectIndex,0!=P.GetCount()&&n(P,this._PageList)}}},TPDFOutLineMaker.prototype={GetOutLineList:function(e){function t(n,o){var a,s,S,P=new Array,h=new Array;for(S=e.Stream.Pos,e.Stream.Pos=parseInt(e.ObjectPosArray[n],10);;)if(a=PDF_GetString(e.Stream),""!=a)if("/First"==a)a=PDF_GetString(e.Stream),e.IsObjectID(a)&&(P[P.length]=parseInt(a,10));else if("/Next"==a)a=PDF_GetString(e.Stream),e.IsObjectID(a)&&(h[h.length]=parseInt(a,10));else if("/Title"==a){if(s=i.GetPDFTextStream(e.Stream),void 0==s)break;a="";for(var c=0;o>c;c++)a+=" ";r[r.length]=a+s}else if("("==a)PDF_TextSkip(e.Stream);else if("endobj"==a)break;if(0!=P.length)for(var c=0;c<P.length;c++)t(P[c],o+1);if(0!=h.length)for(var c=0;c<h.length;c++)t(h[c],o)}var r=new Array,i=new TPDFCode;return e.Encrypt&&e.LoadError(PDFDESIGNER_ERROR_025),-1!=e.OutlinesID&&t(e.OutlinesID,-1),r},SaveToFile:function(e,t){var r=new TFileStream;t.Encrypt&&t.LoadError(PDFDESIGNER_ERROR_025),this._ObjectMem.ObjectIndex=t.ObjectPosArray.length-1;var i=new TPDFParser(this._ObjectMem,null);t.Stream.Pos=0,r.WriteStream(t.Stream,"%PDF-".length,t.Stream.FileSize),r.Pos=r.getFileSize(),i.WritePDFHedaer_Maker(t,r,this._ObjectMem,this.View,!0),this.OutLine.SaveToStream(t,r,this._ObjectMem),i.WritePDFFooter_Maker(t,r,this._ObjectMem,this.Info),-1!=t.InfoID&&i.WriteDummyInfo(t,r),r.SaveToFile(e)}};