Exemple #1
0
        public override IList <IElement> Start(IWorkerContext ctx, Tag tag)
        {
            List <IElement> l = new List <IElement>(1);

            try
            {
                IDictionary <String, String> css = tag.CSS;
                if (css.ContainsKey(CSS.Property.BACKGROUND_COLOR))
                {
                    Type       type     = typeof(PdfWriterPipeline);
                    MapContext pipeline = (MapContext)ctx.Get(type.FullName);
                    if (pipeline != null)
                    {
                        Document document = (Document)pipeline[PdfWriterPipeline.DOCUMENT];
                        if (document != null)
                        {
                            Rectangle rectangle = new Rectangle(document.Left, document.Bottom, document.Right, document.Top, document.PageSize.Rotation);
                            rectangle.BackgroundColor = HtmlUtilities.DecodeColor(css[CSS.Property.BACKGROUND_COLOR]);
                            PdfBody body = new PdfBody(rectangle);
                            l.Add(body);
                        }
                    }
                }
            }
            catch (NoCustomContextException e)
            {}

            return(l);
        }
Exemple #2
0
        private static PdfFont smethod_0(
            PdfBody body,
            string pdfFontID,
            WW.Pdf.Font.Font font,
            ns0.Class30 cidFont)
        {
            PdfIndirectObject <PdfFontFile> pdfIndirectObject1 = new PdfIndirectObject <PdfFontFile>(new PdfFontFile(font.Descriptor.FontData));
            Class40 class40 = PdfFontCreator.smethod_4(pdfFontID, (IFontMetric)cidFont);
            PdfIndirectObject <Class40> pdfIndirectObject2 = new PdfIndirectObject <Class40>(class40);

            class40.FontFile2 = pdfIndirectObject1;
            Class39 class39 = new Class39(cidFont.Registry, cidFont.Ordering, cidFont.Supplement);
            Class35 class35 = new Class35(PdfFontSubTypeEnum.CIDFontType2, font.FontName);

            class35.SystemInfo   = class39;
            class35.Descriptor   = pdfIndirectObject2;
            class35.DefaultWidth = cidFont.DefaultWidth;
            class35.Widths       = cidFont.WArray;
            PdfCMap pdfCmap = new PdfCMap();

            pdfCmap.AddFilter((IFilter) new FlateFilter());
            pdfCmap.SystemInfo = class39;
            pdfCmap.AddBfRanges(cidFont.CMapEntries);
            PdfIndirectObject <PdfCMap> pdfIndirectObject3 = new PdfIndirectObject <PdfCMap>(pdfCmap);
            Class36 class36 = new Class36(pdfFontID, font.FontName);

            class36.Encoding   = cidFont.Encoding;
            class36.Descendant = class35;
            class36.ToUnicode  = pdfIndirectObject3;
            body.IndirectObjects.Add((IPdfIndirectObject)pdfIndirectObject2);
            body.IndirectObjects.Add((IPdfIndirectObject)class35);
            body.IndirectObjects.Add((IPdfIndirectObject)pdfIndirectObject3);
            body.IndirectObjects.Add((IPdfIndirectObject)pdfIndirectObject1);
            return((PdfFont)class36);
        }
Exemple #3
0
        public static PdfFont AddFont(PdfBody body, string pdfFontID, WW.Pdf.Font.Font font)
        {
            PdfFont pdfFont;

            if (font is Class14)
            {
                Class14 base14 = (Class14)font;
                pdfFont = (PdfFont)PdfFontCreator.smethod_1(pdfFontID, base14);
            }
            else
            {
                IFontMetric fontMetric = PdfFontCreator.smethod_3(font);
                if (fontMetric is Class14)
                {
                    Class14 base14 = (Class14)fontMetric;
                    pdfFont = (PdfFont)PdfFontCreator.smethod_1(pdfFontID, base14);
                }
                else if (fontMetric is ns7.Class33)
                {
                    ns7.Class33 ttf = (ns7.Class33)fontMetric;
                    pdfFont = (PdfFont)PdfFontCreator.smethod_2(body, pdfFontID, font, ttf);
                }
                else
                {
                    ns0.Class30 cidFont = (ns0.Class30)fontMetric;
                    pdfFont = PdfFontCreator.smethod_0(body, pdfFontID, font, cidFont);
                }
            }
            if (pdfFont == null)
            {
                throw new Exception("Unable to create Pdf font object for " + pdfFontID);
            }
            body.Fonts.Add(pdfFont);
            return(pdfFont);
        }
Exemple #4
0
        internal void method_2(PdfBody body)
        {
            IDictionary <string, IFontMetric> nameToFontMetric = this.pdfFontInfo_0.UsedNameToFontMetric;

            foreach (string key in (IEnumerable <string>)nameToFontMetric.Keys)
            {
                WW.Pdf.Font.Font font    = (WW.Pdf.Font.Font)nameToFontMetric[key];
                PdfFont          pdfFont = PdfFontCreator.AddFont(body, key, font);
                foreach (PdfReference kid in (ActiveList <IPdfObject>)body.Pages.Kids)
                {
                    PdfPage       referencedObject = (PdfPage)kid.ReferencedObject;
                    IPdfObject    pdfObject;
                    PdfDictionary pdfDictionary;
                    if (referencedObject.Resources.TryGetValue("Font", out pdfObject))
                    {
                        pdfDictionary = (PdfDictionary)pdfObject;
                    }
                    else
                    {
                        pdfDictionary = new PdfDictionary();
                        referencedObject.Resources.Add("Font", (IPdfObject)pdfDictionary);
                    }
                    if (!pdfDictionary.ContainsKey(key))
                    {
                        pdfDictionary.Add(key, (IPdfObject) new PdfReference((IPdfIndirectObject)pdfFont));
                    }
                }
            }
        }
Exemple #5
0
        private static Class38 smethod_2(
            PdfBody body,
            string pdfFontID,
            WW.Pdf.Font.Font font,
            ns7.Class33 ttf)
        {
            PdfIndirectObject <Class40> pdfIndirectObject = new PdfIndirectObject <Class40>(PdfFontCreator.smethod_4(pdfFontID, (IFontMetric)ttf));
            Class38 class38 = new Class38(pdfFontID, font.FontName);

            class38.Encoding   = "WinAnsiEncoding";
            class38.Descriptor = pdfIndirectObject;
            class38.FirstChar  = ttf.FirstChar;
            class38.LastChar   = ttf.LastChar;
            class38.Widths     = ttf.Array;
            body.IndirectObjects.Add((IPdfIndirectObject)pdfIndirectObject);
            return(class38);
        }
Exemple #6
0
 /**
 * Signals that the <CODE>Document</CODE> has been opened and that
 * <CODE>Elements</CODE> can be added.
 * <P>
 * When this method is called, the PDF-document header is
 * written to the outputstream.
 */
 public override void Open()
 {
     base.Open();
     pdf_version.WriteHeader(os);
     body = new PdfBody(this);
     if (pdfxConformance.IsPdfX32002()) {
         PdfDictionary sec = new PdfDictionary();
         sec.Put(PdfName.GAMMA, new PdfArray(new float[]{2.2f,2.2f,2.2f}));
         sec.Put(PdfName.MATRIX, new PdfArray(new float[]{0.4124f,0.2126f,0.0193f,0.3576f,0.7152f,0.1192f,0.1805f,0.0722f,0.9505f}));
         sec.Put(PdfName.WHITEPOINT, new PdfArray(new float[]{0.9505f,1f,1.089f}));
         PdfArray arr = new PdfArray(PdfName.CALRGB);
         arr.Add(sec);
         SetDefaultColorspace(PdfName.DEFAULTRGB, AddToBody(arr).IndirectReference);
     }
 }
Exemple #7
0
 internal Wrt(Stream os, FdfWriter fdf) : base(new PdfDocument(), os)
 {
     this.fdf = fdf;
     this.os.Write(HEADER_FDF, 0, HEADER_FDF.Length);
     body = new PdfBody(this);
 }
Exemple #8
0
 internal Wrt(Stream os, FdfWriter fdf)
     : base(new PdfDocument(), os)
 {
     this.fdf = fdf;
     this.os.Write(HEADER_FDF, 0, HEADER_FDF.Length);
     body = new PdfBody(this);
 }