Exemple #1
0
 /// <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;
 }
Exemple #2
0
 /// <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" }));
     }
 }
Exemple #3
0
 /// <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);
        }
Exemple #7
0
        /// <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);
        }
Exemple #8
0
 /// <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;
 }
Exemple #9
0
 /// <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;
 }
Exemple #10
0
 /// <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;
            }
        }
Exemple #12
0
 /// <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);
 }
Exemple #13
0
        /// <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);
        }
Exemple #14
0
 /// <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);
     }
 }
Exemple #15
0
 /// <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);
 }
Exemple #16
0
 /// <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;
 }
Exemple #17
0
 /// <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;
 }
Exemple #18
0
 /// <summary>
 /// Writes the object.
 /// </summary>
 /// <param name="obj">The obj.</param>
 public void WriteObject(PdfObjectBase obj)
 {
     this.WriteObject(obj, true);
 }