public void WriteData(PDFWriter writer) { if (null == this._value) { writer.WriteNullS(); } else { writer.WriteStringLiteralS(this.Value); } }
/// <summary> /// Writes the null string to the writer /// </summary> /// <param name="writer">The writer to write to</param> public void WriteData(PDFWriter writer) { writer.WriteNullS(); }
// // methods // #region public PDFObjectRef OutputToPDF(PDFWriter writer, PDFRenderContext context) /// <summary> /// Renderes this destination within the current PDFObject stream of the provided writer. /// </summary> /// <param name="context"></param> /// <param name="writer"></param> /// <returns></returns> public PDFObjectRef OutputToPDF(PDFRenderContext context, PDFWriter writer) { PDFComponentArrangement arrange; arrange = this.GetFirstArrangementInTree(this.Component); if (null == arrange) { //The component does not have an arrangement so cannot output the destination writer.WriteNullS(); if (context.TraceLog.ShouldLog(TraceLevel.Warning)) { context.TraceLog.Add(TraceLevel.Warning, "Destination", "Destination to component " + this.Component.UniqueID + " cannot be written as it has no arrangement"); } return(null); } int pgindex = arrange.PageIndex; PDFObjectRef oref = writer.PageRefs[pgindex]; if (null == oref) { //No page, so cannot output the destination writer.WriteNullS(); if (context.TraceLog.ShouldLog(TraceLevel.Warning)) { context.TraceLog.Add(TraceLevel.Warning, "Destination", "Destination to component " + this.Component.UniqueID + " cannot be written as it has no page reference"); } return(null); } writer.BeginArray(); //Write the page reference writer.BeginArrayEntry(); writer.WriteObjectRef(oref); writer.EndArrayEntry(); //Write the page fit method switch (this.Fit) { case OutlineFit.FullPage: writer.BeginArrayEntry(); writer.WriteName("Fit"); writer.EndArrayEntry(); break; case OutlineFit.PageWidth: writer.BeginArrayEntry(); writer.WriteName("FitH"); writer.EndArrayEntry(); break; case OutlineFit.PageHeight: writer.BeginArrayEntry(); writer.WriteName("FitV"); writer.EndArrayEntry(); break; case OutlineFit.BoundingBox: writer.BeginArrayEntry(); writer.WriteName("FitR"); writer.EndArrayEntry(); PDFReal left = arrange.RenderBounds.X.RealValue; PDFReal top = arrange.RenderBounds.Y.RealValue; PDFReal right = left + arrange.RenderBounds.Width.RealValue; PDFReal bottom = top + arrange.RenderBounds.Height.RealValue; left = context.Graphics.GetXPosition(left); right = context.Graphics.GetXPosition(right); top = context.Graphics.GetYPosition(top); bottom = context.Graphics.GetYPosition(bottom); if (bottom < top) { PDFReal temp = top; top = bottom; bottom = temp; } if (left > right) { PDFReal temp = left; left = right; right = temp; } writer.BeginArrayEntry(); left.WriteData(writer); writer.EndArrayEntry(); writer.BeginArrayEntry(); bottom.WriteData(writer); writer.EndArrayEntry(); writer.BeginArrayEntry(); right.WriteData(writer); writer.EndArrayEntry(); writer.BeginArrayEntry(); top.WriteData(writer); writer.EndArrayEntry(); break; default: break; } writer.EndArray(); if (context.ShouldLogVerbose) { context.TraceLog.Add(TraceLevel.Verbose, "Destination", "Added a destination to component " + this.Component.UniqueID + " with first arrangment on page " + pgindex + " (" + oref + ") with size fit of " + this.Fit); } return(null); }