using ceTe.DynamicPDF.PageElements; using Consulenza.ReportWriter.Business.Entity; using System.IO; using ceTe.DynamicPDF; namespace Consulenza.ReportWriter.Business.OBJ_PDF { /// /// Rappresenta una immagine. /// L'immagine sarà disegnata ai rispettivi valori x e y del documento assegnati alle proprietà _x e _y dell'oggetto ImagePDF. /// Utilizza la classe primitiva ceTe.DynamicPDF.PageElements.Image. /// public class ImagePDF : ObjectPDF { #region Fields /// /// Imposta o ottiene l'elemento base (PageElement) /// public Image BaseElement { get; set; } /// /// Imposta o recupera la X del documento su cui disegnare l'immagine. /// public float X { get; set; } /// /// Imposta o recupera un valore che indica l'incremento algebrico dell'incremento standard di X. /// Utilizzare questa proprietà se si vuole incrementare o decrementare la X assegnata automaticamente dal motore di renderizzazione. /// Di default=0; /// public float DeltaX { get; set; } /// /// Imposta o recupera la Y del documento su cui disegnare l'immagine. /// public float Y { get; set; } /// /// Imposta o recupera un valore che indica l'incremento algebrico dell'incremento standard di Y. /// Utilizzare questa proprietà se si vuole incrementare o decrementare la Y assegnata automaticamente dal motore di renderizzazione. /// Di default=0; /// public float DeltaY { get; set; } /// /// Imposta o ottiene un valore per il quale scalare l'immagine. /// public float Scale { get; set; } /// /// Imposta o ottiene l'allinemento dell'immagine quando questa è contenuta in una cella di una tabella. /// Di default=Left. /// public Align Align { get; set; } /// /// Imposta o recupera la larghezza /// public float Width { get; set; } /// /// Imposta o recupera l'altezza /// public float Height { get; set; } /// /// Imposta o recupera il percorso dell'immagine da disegnare. /// public string Path { get; set; } /// /// Imposta o recupera il file contenente l'immagine da disegnare. /// public Stream File { get; set; } // NOTE public FormattedTextAreaPDF _notes { get; set; } public FormattedTextAreaPDF Notes { get { return _notes; } set { _notes = value; } } #endregion #region Costruttori /// /// Costruttore /// public ImagePDF() { Align = Align.Left; ObjectType = ObjectTypePdf.IMAGE; AutoIncrementYWritable = false; } /// /// Costruttore /// /// X su cui stampare l'immagine. /// file /// altezza /// larghezza /// Y su cui stampare l'immagine. public ImagePDF(float x, Stream file, float height, float width, float y) : this() { X = x; Y = y; Height = height; Width = width; File = file; } /// /// Costruttore /// /// X su cui stampare l'immagine. /// /// file public ImagePDF(float x, float scale, Stream file) : this() { X = x; Scale = scale; File = file; } /// /// Costruttore /// /// X su cui stampare l'immagine. /// Scala con cui stampare l'immagine. /// Nome file dell'immagine. public ImagePDF(float x, float scale, string fileName) : this() { X = x; Scale = scale; var path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) .Replace("bin", "Images") .Replace("file:\\", string.Empty); Path = string.Format("{0}\\{1}", path, fileName); } public ImagePDF(string fileName, float x, float scale) : this() { X = x; Scale = scale; Path = string.Format(fileName); } /// /// Costruttore /// /// X su cui stampare l'immagine. /// Scala con cui stampare l'immagine. /// Nome file dell'immagine. /// Allinemento dell'immagine quando contenuta in una cella di una tabella. /// Y su cui stampare l'immagine. public ImagePDF(float x, float scale, string fileName, Align align, float y) : this(x, scale, fileName) { Align = align; Y = y; } #endregion #region Metodi /// /// Ritorna l'oggetto che sarà stampato sulla pagina del documento. /// /// public override PageElement ToElement() { return BaseElement; } #endregion } }