/// <summary> /// Renderiza uma imagem no Bloco. /// Essa imagem precisa vir de um arquivo em disco. /// </summary> /// <param name="p_object">Objeto a ser renderizado.</param> /// <param name="p_posx">Posição X.</param> /// <param name="p_posy">Posição Y.</param> /// <param name="p_rightmargin">Margem direita.</param> /// <param name="p_pdf">Objeto PDF.</param> /// <param name="p_page">Página onde o objeto será renderizado.</param> private void RenderImage(Spartacus.Reporting.Object p_object, double p_posx, double p_posy, double p_rightmargin, PDFjet.NET.PDF p_pdf, PDFjet.NET.Page p_page) { PDFjet.NET.Image v_image; System.IO.FileInfo v_info; char[] v_ch; string[] v_temp; Spartacus.Utils.Cryptor v_cryptor; string v_path; if (p_object.v_pdfobject == null) { v_ch = new char[1]; v_ch[0] = '.'; v_cryptor = new Spartacus.Utils.Cryptor("spartacus"); try { v_path = v_cryptor.Decrypt(p_object.v_value); } catch (System.Exception) { v_path = p_object.v_value; } v_info = new System.IO.FileInfo(v_path); if (v_info.Exists) { v_temp = v_path.Split(v_ch); switch (v_temp[v_temp.Length - 1].ToUpper()) { case "BMP": v_image = new PDFjet.NET.Image(p_pdf, new System.IO.FileStream(v_path, System.IO.FileMode.Open, System.IO.FileAccess.Read), PDFjet.NET.ImageType.BMP); break; case "JPG": v_image = new PDFjet.NET.Image(p_pdf, new System.IO.FileStream(v_path, System.IO.FileMode.Open, System.IO.FileAccess.Read), PDFjet.NET.ImageType.JPG); break; case "JPEG": v_image = new PDFjet.NET.Image(p_pdf, new System.IO.FileStream(v_path, System.IO.FileMode.Open, System.IO.FileAccess.Read), PDFjet.NET.ImageType.JPG); break; case "PNG": v_image = new PDFjet.NET.Image(p_pdf, new System.IO.FileStream(v_path, System.IO.FileMode.Open, System.IO.FileAccess.Read), PDFjet.NET.ImageType.PNG); break; case "JET": v_image = new PDFjet.NET.Image(p_pdf, new System.IO.FileStream(v_path, System.IO.FileMode.Open, System.IO.FileAccess.Read), PDFjet.NET.ImageType.JET); break; default: v_image = null; break; } if (v_image != null) { switch (p_object.v_align) { case Spartacus.Reporting.FieldAlignment.LEFT: v_image.SetPosition(p_posx + p_object.v_posx, p_posy + p_object.v_posy); break; case Spartacus.Reporting.FieldAlignment.RIGHT: v_image.SetPosition(p_page.GetWidth() - p_rightmargin - v_image.GetWidth(), p_posy + p_object.v_posy); break; case Spartacus.Reporting.FieldAlignment.CENTER: v_image.SetPosition(p_posx + ((p_page.GetWidth() - p_rightmargin - p_posx) / 2) - (v_image.GetWidth() / 2), p_posy + p_object.v_posy); break; default: break; } v_image.DrawOn(p_page); p_object.v_pdfobject = v_image; } } } else { ((PDFjet.NET.Image)p_object.v_pdfobject).DrawOn(p_page); } }
/// <summary> /// Renderiza uma imagem no Bloco. /// Essa imagem precisa vir de um arquivo em disco. /// </summary> /// <param name="p_object">Objeto a ser renderizado.</param> /// <param name="p_posx">Posição X.</param> /// <param name="p_posy">Posição Y.</param> /// <param name="p_rightmargin">Margem direita.</param> /// <param name="p_pdf">Objeto PDF.</param> /// <param name="p_page">Página onde o objeto será renderizado.</param> private void RenderImage(Spartacus.Reporting.Object p_object, double p_posx, double p_posy, double p_rightmargin, PDFjet.NET.PDF p_pdf, PDFjet.NET.Page p_page) { PDFjet.NET.Image v_image; System.IO.FileInfo v_info; char[] v_ch; string[] v_temp; Spartacus.Utils.Cryptor v_cryptor; string v_path; if (p_object.v_pdfobject == null) { v_ch = new char[1]; v_ch [0] = '.'; v_cryptor = new Spartacus.Utils.Cryptor("spartacus"); try { v_path = v_cryptor.Decrypt(p_object.v_value); } catch (System.Exception) { v_path = p_object.v_value; } v_info = new System.IO.FileInfo(v_path); if (v_info.Exists) { v_temp = v_path.Split(v_ch); switch (v_temp[v_temp.Length - 1].ToUpper()) { case "BMP": v_image = new PDFjet.NET.Image(p_pdf, new System.IO.FileStream(v_path, System.IO.FileMode.Open, System.IO.FileAccess.Read), PDFjet.NET.ImageType.BMP); break; case "JPG": v_image = new PDFjet.NET.Image(p_pdf, new System.IO.FileStream(v_path, System.IO.FileMode.Open, System.IO.FileAccess.Read), PDFjet.NET.ImageType.JPG); break; case "JPEG": v_image = new PDFjet.NET.Image(p_pdf, new System.IO.FileStream(v_path, System.IO.FileMode.Open, System.IO.FileAccess.Read), PDFjet.NET.ImageType.JPG); break; case "PNG": v_image = new PDFjet.NET.Image(p_pdf, new System.IO.FileStream(v_path, System.IO.FileMode.Open, System.IO.FileAccess.Read), PDFjet.NET.ImageType.PNG); break; case "JET": v_image = new PDFjet.NET.Image(p_pdf, new System.IO.FileStream(v_path, System.IO.FileMode.Open, System.IO.FileAccess.Read), PDFjet.NET.ImageType.JET); break; default: v_image = null; break; } if (v_image != null) { switch (p_object.v_align) { case Spartacus.Reporting.FieldAlignment.LEFT: v_image.SetPosition(p_posx + p_object.v_posx, p_posy + p_object.v_posy); break; case Spartacus.Reporting.FieldAlignment.RIGHT: v_image.SetPosition(p_page.GetWidth() - p_rightmargin - v_image.GetWidth(), p_posy + p_object.v_posy); break; case Spartacus.Reporting.FieldAlignment.CENTER: v_image.SetPosition(p_posx + ((p_page.GetWidth() - p_rightmargin - p_posx) / 2) - (v_image.GetWidth() / 2), p_posy + p_object.v_posy); break; default: break; } v_image.DrawOn(p_page); p_object.v_pdfobject = v_image; } } } else ((PDFjet.NET.Image)p_object.v_pdfobject).DrawOn(p_page); }