193 lines
5.9 KiB
C#

using ceTe.DynamicPDF.PageElements;
using Consulenza.ReportWriter.Business.Entity;
using System.IO;
using ceTe.DynamicPDF;
namespace Consulenza.ReportWriter.Business.OBJ_PDF
{
/// <summary>
/// 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.
/// </summary>
public class ImagePDF : ObjectPDF
{
#region Fields
/// <summary>
/// Imposta o ottiene l'elemento base (PageElement)
/// </summary>
public Image BaseElement { get; set; }
/// <summary>
/// Imposta o recupera la X del documento su cui disegnare l'immagine.
/// </summary>
public float X { get; set; }
/// <summary>
/// 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;
/// </summary>
public float DeltaX { get; set; }
/// <summary>
/// Imposta o recupera la Y del documento su cui disegnare l'immagine.
/// </summary>
public float Y { get; set; }
/// <summary>
/// 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;
/// </summary>
public float DeltaY { get; set; }
/// <summary>
/// Imposta o ottiene un valore per il quale scalare l'immagine.
/// </summary>
public float Scale { get; set; }
/// <summary>
/// Imposta o ottiene l'allinemento dell'immagine quando questa è contenuta in una cella di una tabella.
/// Di default=Left.
/// </summary>
public Align Align { get; set; }
/// <summary>
/// Imposta o recupera la larghezza
/// </summary>
public float Width { get; set; }
/// <summary>
/// Imposta o recupera l'altezza
/// </summary>
public float Height { get; set; }
/// <summary>
/// Imposta o recupera il percorso dell'immagine da disegnare.
/// </summary>
public string Path { get; set; }
/// <summary>
/// Imposta o recupera il file contenente l'immagine da disegnare.
/// </summary>
public Stream File { get; set; }
// NOTE
public FormattedTextAreaPDF _notes { get; set; }
public FormattedTextAreaPDF Notes
{
get { return _notes; }
set { _notes = value; }
}
#endregion
#region Costruttori
/// <summary>
/// Costruttore
/// </summary>
public ImagePDF()
{
Align = Align.Left;
ObjectType = ObjectTypePdf.IMAGE;
AutoIncrementYWritable = false;
}
/// <summary>
/// Costruttore
/// </summary>
/// <param name="x">X su cui stampare l'immagine.</param>
/// <param name="file">file</param>
/// <param name="height">altezza</param>
/// <param name="width">larghezza</param>
/// <param name="y">Y su cui stampare l'immagine.</param>
public ImagePDF(float x, Stream file, float height, float width, float y)
: this()
{
X = x;
Y = y;
Height = height;
Width = width;
File = file;
}
/// <summary>
/// Costruttore
/// </summary>
/// <param name="x">X su cui stampare l'immagine.</param>
/// <param name="scale"></param>
/// <param name="file">file</param>
public ImagePDF(float x, float scale, Stream file)
: this()
{
X = x;
Scale = scale;
File = file;
}
/// <summary>
/// Costruttore
/// </summary>
/// <param name="x">X su cui stampare l'immagine.</param>
/// <param name="scale">Scala con cui stampare l'immagine.</param>
/// <param name="fileName">Nome file dell'immagine.</param>
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);
}
/// <summary>
/// Costruttore
/// </summary>
/// <param name="x">X su cui stampare l'immagine.</param>
/// <param name="scale">Scala con cui stampare l'immagine.</param>
/// <param name="fileName">Nome file dell'immagine.</param>
/// <param name="align">Allinemento dell'immagine quando contenuta in una cella di una tabella.</param>
/// <param name="y">Y su cui stampare l'immagine.</param>
public ImagePDF(float x, float scale, string fileName, Align align, float y)
: this(x, scale, fileName)
{
Align = align;
Y = y;
}
#endregion
#region Metodi
/// <summary>
/// Ritorna l'oggetto che sarà stampato sulla pagina del documento.
/// </summary>
/// <returns></returns>
public override PageElement ToElement()
{
return BaseElement;
}
#endregion
}
}