private void SaveIndirect(XRefEntry e, PDFIndirect i) { if (i.PDFType == PDFObjectType.tPDFStream) { foreach (IStreamEncodingRule rule1 in base.StreamEncodingRules) { if (rule1.Handle(((PDFStream)i.Direct))) { goto Label_0051; } } } Label_0051: e.offset = this.mWriter.Position; this.mWriter.WriteSp(i.Id); this.mWriter.WriteSp(i.Generation); this.mWriter.WriteRaw("obj"); this.mWriter.WriteEOL(); IEncryption encryption1 = this.mWriter.Encryption; if ((this.mTrailer["Encrypt"] != null) && (i.Id == this.mTrailer["Encrypt"].Indirect.Id)) { this.mWriter.Encryption = null; } this.mWriter.WriteLn(i.Direct); this.mWriter.Encryption = encryption1; this.mWriter.WriteRaw("endobj"); this.mWriter.WriteEOL(); i.Dirty = false; }
public PDFIndirect New(PDFDirect dir) { PDFIndirect indirect1 = this.New(); indirect1.Direct = dir; return(indirect1); }
public static PDFIndirect CreateIndirect(PDFDirect direct) { PDFIndirect indirect1 = Library.Instance._CreateIndirect(); indirect1.Direct = direct; return(indirect1); }
public static void AddDefaultRGB(Document doc) { int num1; if (doc == null) { return; } PDFDict dict1 = Library.CreateDict(); double[] numArray1 = new double[3] { 0.95045f, 1f, 1.08905f }; double[] numArray2 = new double[3] { 2.2f, 2.2f, 2.2f }; double[] numArray3 = new double[9] { 0.4124f, 0.2126f, 0.0193f, 0.3576f, 0.7152f, 0.1192f, 0.1805f, 0.0722f, 0.9505f }; dict1["WhitePoint"] = PDF.O(numArray1); dict1["Gamma"] = PDF.O(numArray2); dict1["Matrix"] = PDF.O(numArray3); PDFArray array1 = Library.CreateArray(2); array1[0] = Library.CreateName("CalRGB"); array1[1] = dict1; PDFIndirect indirect1 = doc.Indirects.New(array1); Resource resource1 = doc.Resources[indirect1, typeof(ColorSpace)]; for (num1 = 0; (num1 < doc.Pages.Count); num1 += 1) { doc.Pages[num1].Resources.Add("DefaultRGB", resource1); } }
public void WriteIndirect(PDFIndirect ind) { this.WriteInteger(((long)ind.Id)); this.WriteSpace(); this.WriteInteger(((long)ind.Generation)); this.WriteSpace(); this.mWriter.Write("R"); }
public Resource this[int nr, Type resType] { get { PDFIndirect indirect1 = this.mDoc.Indirects[nr]; if (indirect1 == null) { return(null); } return(this[indirect1, resType]); } }
protected static PDFIndirect BuildStandardFont(Document doc, string fontname) { PDFDict dict1 = Library.CreateDict(); dict1["Type"] = Library.CreateName("Font"); dict1["Subtype"] = Library.CreateName("Type1"); dict1["Encoding"] = Library.CreateName("WinAnsiEncoding"); dict1["BaseFont"] = Library.CreateName(fontname); PDFIndirect indirect1 = doc.Indirects.New(); indirect1.Direct = dict1; return(indirect1); }
internal override object ComplexObjectFactory(PDFDirect dir) { PDFIndirect indirect1 = dir.Indirect; foreach (Page page1 in dir.Doc.Pages) { if (page1.Dict.Indirect != indirect1) { continue; } return(page1); } return(null); }
public override bool Equals(object obj) { PDFIndirect indirect1 = (obj as PDFIndirect); if (indirect1 == null) { return(false); } if (this.mId == indirect1.Id) { return(this.Doc == indirect1.Doc); } return(false); }
internal static PDFIndirect New(Document doc) { int num1; PDFIndirect indirect1 = doc.Indirects.New(); PDFDict dict1 = Library.CreateDict(); indirect1.Direct = dict1; dict1["Type"] = Library.CreateName("Page"); dict1["Resources"] = Library.CreateDict(); PDFArray array1 = Library.CreateArray(4); for (num1 = 0; (num1 < 4); num1 += 1) { array1[num1] = Library.CreateInteger(((long)0)); } dict1["MediaBox"] = array1; return(indirect1); }
public void AddLinkAnnotation(double left, double bottom, double right, double top, PDFObject uri_action) { PDFDict dict1 = Library.CreateDict(); dict1["Type"] = Library.CreateName("Annot"); dict1["Subtype"] = Library.CreateName("Link"); PDFDict dict2 = Library.CreateDict(); dict2["W"] = Library.CreateInteger(((long)0)); dict1["BS"] = dict2; PDFArray array1 = Library.CreateArray(0); array1.Add(Library.CreateFixed(0f)); array1.Add(Library.CreateFixed(0f)); array1.Add(Library.CreateFixed(0f)); dict1["Border"] = array1; PDFArray array2 = Library.CreateArray(0); array2.Add(Library.CreateFixed(left)); array2.Add(Library.CreateFixed(bottom)); array2.Add(Library.CreateFixed(right)); array2.Add(Library.CreateFixed(top)); dict1["Rect"] = array2; if (uri_action != null) { dict1["A"] = uri_action; } Document document1 = this.mPage.Dict.Doc; PDFIndirect indirect1 = document1.Indirects.New(dict1); PDFArray array3 = null; PDFObject obj1 = this.mPage.Dict["Annots"]; if ((obj1 != null) && (obj1.PDFType == PDFObjectType.tPDFArray)) { array3 = ((PDFArray)obj1.Direct); } else { array3 = Library.CreateArray(0); this.mPage.Dict["Annots"] = array3; } array3.Add(indirect1); }
public void AddWatermarks(Page page) { PDFStream stream1; Stream stream2; PDFStream stream3; Stream stream4; PDFStream stream5; Stream stream6; PDFStream stream7; Stream stream8; object obj1; DateTime time1; this.m_sContents = ""; if (this.m_bAdd_qQ_ToOrigSc) { this.m_sContents = this.m_sContents + "\nQ"; } this.mPage = page; page.Resources.Add(this.m_sLogoFont, this.mWTM_LogoFont); PDFDict dict1 = Library.CreateDict(); dict1["S"] = Library.CreateName("URI"); dict1["URI"] = Library.CreateString("http://www.alt-soft.com/"); PDFIndirect indirect1 = this.mPage.Dict.Doc.Indirects.New(dict1); int num1 = this.mPage.Rotate; double num2 = (this.mPage.CropBox.Left + (this.mPage.CropBox.Width / 2f)); double num3 = (this.mPage.CropBox.Bottom + (this.mPage.CropBox.Height / 2f)); double num4 = ((this.mPage.CropBox.Width - this.mPage.CropBox.Height) / 2f); int num5 = num1; if (num5 <= 90) { if (num5 == 0) { goto Label_02F9; } if (num5 == 90) { goto Label_015E; } goto Label_02EE; } if (num5 == 180) { goto Label_01E2; } if (num5 == 270) { goto Label_026E; } goto Label_02EE; Label_015E: obj1 = this.m_sContents; object[] objArray1 = new object[6]; objArray1[0] = obj1; objArray1[1] = "0 1 -1 0 "; double num6 = ((num2 + num3) + num4); objArray1[2] = num6.ToString("N", this.mNumberFormat); objArray1[3] = 32; num6 = ((-num2 + num3) + num4); objArray1[4] = num6.ToString("N", this.mNumberFormat); objArray1[5] = " cm\n"; this.m_sContents = objArray1; goto Label_02F9; Label_01E2: obj1 = this.m_sContents; objArray1 = new object[6]; objArray1[0] = obj1; objArray1[1] = "-1 0 0 -1 "; num6 = (2f * num2); objArray1[2] = num6.ToString("N", this.mNumberFormat); objArray1[3] = 32; num6 = (2f * num3); objArray1[4] = num6.ToString("N", this.mNumberFormat); objArray1[5] = " cm\n"; this.m_sContents = objArray1; goto Label_02F9; Label_026E: obj1 = this.m_sContents; objArray1 = new object[6]; objArray1[0] = obj1; objArray1[1] = "0 -1 1 0 "; num6 = ((num2 - num3) - num4); objArray1[2] = num6.ToString("N", this.mNumberFormat); objArray1[3] = 32; num6 = ((num2 + num3) - num4); objArray1[4] = num6.ToString("N", this.mNumberFormat); objArray1[5] = " cm\n"; this.m_sContents = objArray1; goto Label_02F9; Label_02EE: throw new FormatException("Rotate parameter should be a multiple of 90"); Label_02F9: time1 = DateTime.Now; new Random(time1.Millisecond); this.AddLogo(indirect1); this.AddTextLogo(indirect1); PDFArray array1 = Library.CreateArray(1); array1[0] = Library.CreateName("FlateDecode"); string text1 = "q\n"; if (this.m_bAdd_qQ_ToOrigSc) { if (this.m_bWMAsNewStream) { page.Contents.InsertStream(text1, 0); stream1 = page.Contents.GetPDFStream(0); stream2 = stream1.Decode(); stream1.Dict["Filter"] = page.Dict.Doc.CloneObject(array1); stream1.Dict.Remove("DecodeParms"); stream1.Encode(stream2); } else { page.Contents.AppendStream(text1, "", 0); stream3 = page.Contents.GetPDFStream(0); stream4 = stream3.Decode(); stream3.Dict["Filter"] = page.Dict.Doc.CloneObject(array1); stream3.Dict.Remove("DecodeParms"); stream3.Encode(stream4); } } if (this.m_bWMAsNewStream) { page.Contents.AddStream(this.m_sContents); stream5 = page.Contents.GetPDFStream((page.Contents.Count - 1)); stream6 = stream5.Decode(); stream5.Dict["Filter"] = page.Dict.Doc.CloneObject(array1); stream5.Dict.Remove("DecodeParms"); stream5.Encode(stream6); } else { page.Contents.AppendStream("", this.m_sContents, (page.Contents.Count - 1)); stream7 = page.Contents.GetPDFStream((page.Contents.Count - 1)); stream8 = stream7.Decode(); stream7.Dict["Filter"] = page.Dict.Doc.CloneObject(array1); stream7.Dict.Remove("DecodeParms"); stream7.Encode(stream8); } this.mPage = null; }