private void AddToLine(PdfChunk chunk) { if (chunk.ChangeLeading && chunk.IsImage()) { float f = chunk.Image.ScaledHeight + chunk.ImageOffsetY + chunk.Image.BorderWidthTop; if (f > height) { height = f; } } line.Add(chunk); }
private void AddToLine(PdfChunk chunk) { if (chunk.ChangeLeading && chunk.IsImage()) { float f = chunk.Image.ScaledHeight + chunk.ImageOffsetY + chunk.Image.BorderWidthTop; if (f > height) height = f; } line.Add(chunk); }
// methods /** * Adds a <CODE>PdfChunk</CODE> to the <CODE>PdfLine</CODE>. * * @param chunk the <CODE>PdfChunk</CODE> to add * @return <CODE>null</CODE> if the chunk could be added completely; if not * a <CODE>PdfChunk</CODE> containing the part of the chunk that could * not be added is returned */ internal PdfChunk Add(PdfChunk chunk) { // nothing happens if the chunk is null. if (chunk == null || chunk.ToString().Equals("")) { return null; } // we split the chunk to be added PdfChunk overflow = chunk.Split(width); newlineSplit = (chunk.IsNewlineSplit() || overflow == null); // if (chunk.IsNewlineSplit() && alignment == Element.ALIGN_JUSTIFIED) // alignment = Element.ALIGN_LEFT; if (chunk.IsTab()) { Object[] tab = (Object[])chunk.GetAttribute(Chunk.TAB); float tabPosition = (float)tab[1]; bool newline = (bool)tab[2]; if (newline && tabPosition < originalWidth - width) { return chunk; } width = originalWidth - tabPosition; chunk.AdjustLeft(left); AddToLine(chunk); } // if the length of the chunk > 0 we add it to the line else if (chunk.Length > 0 || chunk.IsImage()) { if (overflow != null) chunk.TrimLastSpace(); width -= chunk.Width; AddToLine(chunk); } // if the length == 0 and there were no other chunks added to the line yet, // we risk to end up in an endless loop trying endlessly to add the same chunk else if (line.Count < 1) { chunk = overflow; overflow = chunk.Truncate(width); width -= chunk.Width; if (chunk.Length > 0) { AddToLine(chunk); return overflow; } // if the chunck couldn't even be truncated, we add everything, so be it else { if (overflow != null) AddToLine(chunk); return null; } } else { width += ((PdfChunk)(line[line.Count - 1])).TrimLastSpace(); } return overflow; }
// methods /** * Adds a <CODE>PdfChunk</CODE> to the <CODE>PdfLine</CODE>. * * @param chunk the <CODE>PdfChunk</CODE> to add * @return <CODE>null</CODE> if the chunk could be added completely; if not * a <CODE>PdfChunk</CODE> containing the part of the chunk that could * not be added is returned */ internal PdfChunk Add(PdfChunk chunk) { // nothing happens if the chunk is null. if (chunk == null || chunk.ToString().Equals("")) { return(null); } // we split the chunk to be added PdfChunk overflow = chunk.Split(width); newlineSplit = (chunk.IsNewlineSplit() || overflow == null); // if (chunk.IsNewlineSplit() && alignment == Element.ALIGN_JUSTIFIED) // alignment = Element.ALIGN_LEFT; if (chunk.IsTab()) { Object[] tab = (Object[])chunk.GetAttribute(Chunk.TAB); float tabPosition = (float)tab[1]; bool newline = (bool)tab[2]; if (newline && tabPosition < originalWidth - width) { return(chunk); } width = originalWidth - tabPosition; chunk.AdjustLeft(left); AddToLine(chunk); } // if the length of the chunk > 0 we add it to the line else if (chunk.Length > 0 || chunk.IsImage()) { if (overflow != null) { chunk.TrimLastSpace(); } width -= chunk.Width; AddToLine(chunk); } // if the length == 0 and there were no other chunks added to the line yet, // we risk to end up in an endless loop trying endlessly to add the same chunk else if (line.Count < 1) { chunk = overflow; overflow = chunk.Truncate(width); width -= chunk.Width; if (chunk.Length > 0) { AddToLine(chunk); return(overflow); } // if the chunck couldn't even be truncated, we add everything, so be it else { if (overflow != null) { AddToLine(chunk); } return(null); } } else { width += ((PdfChunk)(line[line.Count - 1])).TrimLastSpace(); } return(overflow); }