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); }
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); }
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); }
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)); } } } }
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); }
/** * 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); } }
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); }