diff --git a/PROMS/Volian.Print.Library/Rtf2iTextSharp.cs b/PROMS/Volian.Print.Library/Rtf2iTextSharp.cs index 10e029f0..58f87866 100644 --- a/PROMS/Volian.Print.Library/Rtf2iTextSharp.cs +++ b/PROMS/Volian.Print.Library/Rtf2iTextSharp.cs @@ -148,23 +148,38 @@ namespace Volian.Print.Library return _MyParagraph; } // ---------------------------------------------------------------------- + private int _lastWasLineBreak = 0; // B2017-191 insert a NewLine when hard returns are used protected override void DoVisitBreak(IRtfVisualBreak visualBreak) { switch (visualBreak.BreakKind) { case RtfVisualBreakKind.Line: - Chunk ck = HasIndent ? new Chunk("".PadLeft(200)) : new Chunk("".PadLeft(200)); + if (_lastWasLineBreak > 0) + { + _MyParagraph.Add(Chunk.NEWLINE); + if (_lastWasLineBreak == 1) + _MyParagraph.Add(Chunk.NEWLINE); // B2017-191 if this is the first hard return add an etra newline to create the first blank line + } + else + { + Chunk ck = HasIndent ? new Chunk("".PadLeft(200)) : new Chunk("".PadLeft(200)); _MyParagraph.Add(ck); + } + _lastWasLineBreak++; // B2017-191 hard return count break; case RtfVisualBreakKind.Page: + _lastWasLineBreak = 0; // B2017-191 reset hard return count break; case RtfVisualBreakKind.Paragraph: Chunk ck1 = HasIndent ? new Chunk("".PadLeft(200)) : Chunk.NEWLINE; _MyParagraph.Add(ck1); + _lastWasLineBreak = 0; // B2017-191 reset hard return count break; case RtfVisualBreakKind.Section: + _lastWasLineBreak = 0; // B2017-191 reset hard return count break; default: + _lastWasLineBreak = 0; // B2017-191 reset hard return count break; } //_MyParagraph.Add(string.Format("<{0}>", visualBreak.BreakKind.ToString())); @@ -230,6 +245,7 @@ namespace Volian.Print.Library default: break; } + _lastWasLineBreak = 0; // B2017-191 reset hard return count } private bool ContainsAllSymbols(string p) { @@ -268,6 +284,7 @@ namespace Volian.Print.Library if (visualText.Format.IsHidden) { ProfileTimer.Pop(profileDepth); + _lastWasLineBreak = 0; // B2017-191 reset hard return count return; } iTextSharp.text.Font font = Volian.Svg.Library.VolianPdf.GetFont(visualText.Format.Font.Name, visualText.Format.FontSize, @@ -315,6 +332,7 @@ namespace Volian.Print.Library ProcessMeans(visualText, visualText.Text, font); } ProfileTimer.Pop(profileDepth); + _lastWasLineBreak = 0; // B2017-191 reset hard return count } /// /// Method to process means from text. Draws a line above the content of the range included in the @@ -483,6 +501,7 @@ namespace Volian.Print.Library //Console.WriteLine("5 Time Span {0}", TimeSpan.FromTicks(DateTime.Now.Ticks - dt1.Ticks).TotalMilliseconds); _MyParagraph.Add(img); //Console.WriteLine("6 Time Span {0}", TimeSpan.FromTicks(DateTime.Now.Ticks - dt1.Ticks).TotalMilliseconds); + _lastWasLineBreak = 0; // B2017-191 reset hard return count } // DoVisitImage }