Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
        public PDFIndirect New(PDFDirect dir)
        {
            PDFIndirect indirect1 = this.New();

            indirect1.Direct = dir;
            return(indirect1);
        }
Exemplo n.º 3
0
        public static PDFIndirect CreateIndirect(PDFDirect direct)
        {
            PDFIndirect indirect1 = Library.Instance._CreateIndirect();

            indirect1.Direct = direct;
            return(indirect1);
        }
Exemplo n.º 4
0
        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);
            }
        }
Exemplo n.º 5
0
 public void WriteIndirect(PDFIndirect ind)
 {
     this.WriteInteger(((long)ind.Id));
     this.WriteSpace();
     this.WriteInteger(((long)ind.Generation));
     this.WriteSpace();
     this.mWriter.Write("R");
 }
Exemplo n.º 6
0
 public Resource this[int nr, Type resType]
 {
     get
     {
         PDFIndirect indirect1 = this.mDoc.Indirects[nr];
         if (indirect1 == null)
         {
             return(null);
         }
         return(this[indirect1, resType]);
     }
 }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
                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);
                }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 11
0
        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);
        }
Exemplo n.º 12
0
        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;
        }