/// <summary> /// Initializes a new instance of the <see cref="T:PdfIndexedColorSpace" /> class. /// </summary> /// <param name="baseColorSpace">The base color space.</param> /// <param name="hival">The hival.</param> /// <param name="lookup">The lookup.</param> public PdfIndexedColorSpace(PdfObjectBase baseColorSpace, int hival, byte[] lookup) { base.isLabeled = true; this.baseColorSpace = baseColorSpace; this.hival = hival; this.lookup = lookup; }
/// <summary> /// Writes the labeled object ref. /// </summary> /// <param name="obj">The obj.</param> /// <param name="renderRef">if set to <c>true</c> [render ref].</param> protected void WriteLabeledObjectRef(PdfObjectBase obj, bool renderRef) { this.AddObject(obj); if (renderRef) { this.psw.WriteString(string.Format("{0} {1} {2}", new object[] { (int)obj.ObjectIndex, (int)obj.Generation, "R" })); } }
/// <summary> /// Adds the object. /// </summary> /// <param name="obj">The obj.</param> protected void AddObject(PdfObjectBase obj) { if (!this.crossTable.Contains(obj) && !this.objSequence.Contains(obj)) { obj.ObjectIndex = this.GetNextObjectIndex(); this.objSequence.In(obj); } }
/// <summary> /// Initializes a new instance of the <see cref="T:PdfFunctionBasedShading" /> class. /// </summary> /// <param name="func">The func.</param> public PdfFunctionBasedShading(PdfObjectBase func) : base(PdfShading.ShadingType.FunctionBased) { if (func == null) { throw new PdfArgumentNullException("func"); } this.function = func; }
/// <summary> /// Write pdf object to stream; /// </summary> /// <param name="objectBase"></param> /// <returns></returns> public PdfCore.PdfIndirectObject Write(PdfObjectBase objectBase) { PdfIndirectObject result; PdfDirectObject pdfObject; ProcessObject(objectBase, out pdfObject, out result); pdfObject.Write(this, objectBase, baseStream.Position); return(result); }
/// <summary> /// Prepare this object for writing /// </summary> /// <param name="objectBase"></param> /// <returns></returns> public PdfIndirectObject Prepare(PdfObjectBase objectBase) { PdfIndirectObject result; PdfDirectObject pdfObject; ProcessObject(objectBase, out pdfObject, out result); pdfObject.Prepare(objectBase); return(result); }
/// <summary> /// Adds the pattern. /// </summary> /// <param name="pattern">The pattern.</param> /// <returns></returns> public PdfName AddPattern(PdfObjectBase pattern) { if (this.patterns.ContainsKey(pattern)) { return(this.patterns[pattern]); } PdfName name = new PdfName("P" + ((int)this.patterns.Count), true); this.patterns.Add(pattern, name); return(name); }
/// <summary> /// Initializes a new instance of the <see cref="T:PdfAppearanceStream" /> class. /// </summary> /// <param name="normal">The normal.</param> public PdfAppearanceStream(PdfObjectBase normal) { if (normal == null) { throw new PdfArgumentNullException("normal"); } if (!normal.IsLabeled) { normal.IsLabeled = true; } this.normalAppearance = normal; }
/// <summary> /// Initializes a new instance of the <see cref="T:PdfRadialShading" /> class. /// </summary> /// <param name="coords">The coords.</param> /// <param name="func">The func.</param> public PdfRadialShading(float[] coords, PdfObjectBase func) : base(PdfShading.ShadingType.Radial) { if (coords == null) { throw new PdfArgumentNullException("coords"); } if (func == null) { throw new PdfArgumentNullException("func"); } this.coords = coords; this.function = func; }
/// <summary> /// Writes the object. /// </summary> /// <param name="obj">The obj.</param> /// <param name="renderRef">if set to <c>true</c> [render ref].</param> public void WriteObject(PdfObjectBase obj, bool renderRef) { if (obj == null) { obj = PdfNull.Null; } if (obj.IsLabeled) { this.WriteLabeledObjectRef(obj, renderRef); } else { obj.ToPdf(this); } }
private void ProcessObject(PdfObjectBase objectBase, out PdfDirectObject pdfDirectObject, out PdfIndirectObject pdfIndirectObject) { pdfDirectObject = new PdfDirectObject(xNumber); pdfIndirectObject = new PdfIndirectObject(xNumber); xNumber++; objects.Add(pdfDirectObject); if (objectBase is PdfCatalog) { trailer["Root"] = pdfIndirectObject; } else if (objectBase is PdfInfo) { trailer["Info"] = pdfIndirectObject; } }
/// <summary> /// Determines whether [contains] [the specified obj]. /// </summary> /// <param name="obj">The obj.</param> /// <returns> /// <c>true</c> if [contains] [the specified obj]; otherwise, <c>false</c>. /// </returns> public bool Contains(PdfObjectBase obj) { if (obj != null) { if (!obj.IsLabeled) { return(false); } foreach (PdfFileCrossRef ref2 in this) { if (obj.Equals(ref2.Object)) { return(true); } } } return(false); }
/// <summary> /// Adds the pattern. /// </summary> /// <param name="pattern">The pattern.</param> /// <returns></returns> public PdfName AddPattern(PdfObjectBase pattern) { if (pattern == null) { throw new PdfArgumentNullException("pattern"); } if (pattern is PdfShadingPattern) { this.AddShading(((PdfShadingPattern)pattern).Shading); } PdfName key = this.manager.AddPattern(pattern); if (!this.Patterns.ContainsKey(key)) { this.Patterns.Add(key, pattern); } return(key); }
/// <summary> /// Writes the labeled object. /// </summary> /// <param name="obj">The obj.</param> protected void WriteLabeledObject(PdfObjectBase obj) { if (!this.crossTable.Contains(obj)) { if (obj is IVersionDepend) { PdfVersion version = ((IVersionDepend)obj).Version(); if (version > this.version) { this.version = version; this.refreshVersion = true; } } this.crossTable.Add(new PdfFileCrossRef(obj, this.psw.Position, true)); this.psw.WriteString(string.Format("{0} {1} ", new object[] { (int)obj.ObjectIndex, (int)obj.Generation })); this.psw.WriteBytes(objPrefix); obj.ToPdf(this); this.psw.WriteBytes(objSuffix); } }
/// <summary> /// Adds the specified key. /// </summary> /// <param name="key">The key.</param> /// <param name="value">The value.</param> public void Add(PdfName key, PdfObjectBase value) { this.pdc.Add(key, value); }
/// <summary> /// Initializes a new instance of the <see cref="T:Dt.Pdf.File.PdfFileCrossRef" /> class. /// </summary> /// <param name="objectBase">The object base.</param> /// <param name="offset">The offset.</param> /// <param name="inUse">if set to <c>true</c> [in use].</param> public PdfFileCrossRef(PdfObjectBase objectBase, long offset, bool inUse) { this.objectBase = objectBase; this.Offset = offset; this.inUse = inUse; }
/// <summary> /// Initializes a new instance of the <see cref="T:Dt.Pdf.File.PdfFileCrossRef" /> class. /// </summary> /// <param name="objectBase">The object base.</param> public PdfFileCrossRef(PdfObjectBase objectBase) { this.objectBase = objectBase; }
/// <summary> /// Writes the object. /// </summary> /// <param name="obj">The obj.</param> public void WriteObject(PdfObjectBase obj) { this.WriteObject(obj, true); }