Made some regx usages static to help with memory usage

Logic to support clipboard paste of screen shot into a table cell
This commit is contained in:
2015-11-24 18:28:59 +00:00
parent ba3bceadae
commit df37f61cb5
5 changed files with 147 additions and 58 deletions

View File

@@ -512,12 +512,13 @@ namespace Volian.Print.Library
}
private void TrimNewlines(Paragraph myPara)
{
while (myPara.Chunks.Count > 0 && ParaEndsWithNewLine(myPara))
myPara.RemoveAt(myPara.Chunks.Count - 1);
while (myPara.Count > 0 && ParaEndsWithNewLine(myPara))
myPara.RemoveAt(myPara.Count - 1);
}
private bool ParaEndsWithNewLine(Paragraph myPara)
{
Chunk chk = myPara.Chunks[myPara.Chunks.Count - 1] as Chunk;
Chunk chk = myPara[myPara.Count - 1] as Chunk;
if (chk == null) return false;
if (chk.Content == "\n") return true;
return false;
}
@@ -1056,6 +1057,17 @@ namespace Volian.Print.Library
MyPara.MultipliedLeading *= _MyPageHelper.YMultiplier;
vlnCells.FixHyphens(MyPara, MyTable);
myColumnText1.AddElement(MyPara);
foreach(object obj in MyPara)
{
if(obj is iTextSharp.text.Image)
{
iTextSharp.text.Image img = obj as iTextSharp.text.Image;
img.SetAbsolutePosition(left,top-h);
img.ScaleAbsoluteWidth(w);
img.ScaleAbsoluteHeight(h);
myColumnText.Canvas.AddImage(img);
}
}
float posBefore = myColumnText1.YLine; // RHM20150429 - Table Scrunch
myColumnText1.Go();
float posAfter = myColumnText1.YLine; // RHM20150429 - Table Scrunch

View File

@@ -152,7 +152,7 @@ namespace Volian.Print.Library
switch (visualBreak.BreakKind)
{
case RtfVisualBreakKind.Line:
Chunk ck = new Chunk("".PadLeft(200));
Chunk ck = HasIndent ? new Chunk("".PadLeft(200)) : new Chunk("".PadLeft(200));
_MyParagraph.Add(ck);
break;
case RtfVisualBreakKind.Page:
@@ -392,21 +392,23 @@ namespace Volian.Print.Library
// ----------------------------------------------------------------------
protected override void DoVisitImage(IRtfVisualImage visualImage)
{
_MyParagraph.Add(new Chunk("<Image>"));
//WriteStartElement("rtfVisualImage");
//_MyParagraph.Add(new Chunk("<Image>"));
DateTime dt1 = DateTime.Now;
//System.Drawing.Image img2 = visualImage.ImageForDrawing;
//Console.WriteLine("1 Time Span {0}", TimeSpan.FromTicks(DateTime.Now.Ticks - dt1.Ticks).TotalMilliseconds);
//img2.Save(@"c:\datacvrt\x.png");
System.IO.MemoryStream ms = new System.IO.MemoryStream();
//WriteElementString("format", visualImage.Format.ToString());
//WriteElementString("width", visualImage.Width.ToString());
//WriteElementString("height", visualImage.Height.ToString());
//WriteElementString("desiredWidth", visualImage.DesiredWidth.ToString());
//WriteElementString("desiredHeight", visualImage.DesiredHeight.ToString());
//WriteElementString("scaleWidthPercent", visualImage.ScaleWidthPercent.ToString());
//WriteElementString("scaleHeightPercent", visualImage.ScaleHeightPercent.ToString());
//WriteElementString("alignment", visualImage.Alignment.ToString());
//WriteElementString("image", visualImage.ImageDataHex.ToString());
//WriteEndElement();
//Console.WriteLine("2 Time Span {0}", TimeSpan.FromTicks(DateTime.Now.Ticks - dt1.Ticks).TotalMilliseconds);
Console.WriteLine("Size {0}", visualImage.ImageForDrawing.Size);
visualImage.ImageForDrawing.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
//Console.WriteLine("3 Time Span {0}", TimeSpan.FromTicks(DateTime.Now.Ticks - dt1.Ticks).TotalMilliseconds);
ms.Seek(0, System.IO.SeekOrigin.Begin);
//Console.WriteLine("4 Time Span {0}", TimeSpan.FromTicks(DateTime.Now.Ticks - dt1.Ticks).TotalMilliseconds);
iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(ms);
//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);
} // DoVisitImage
}