/// <summary> /// Constructor: coge el json parseado y lo guarda como diccionario tambien coge del json: /// offset: la distancia desde el origen y de la pagina hasta donde se pone la cabecera /// y: la distancia desde el origne y de la pagina hasta donde se pone la informacion /// linea: distancia de interlineado /// n_tickets_pag: numero de lineas que tiene cada pagina sin contar la cabecera /// destatico: diccionario donde para cada texto estatico se guarda su estilo /// </summary> /// <param name="pdfjson">path donde esta el.json que se parsea</param> /// <example>ejemplo de json: /// {"offset":{"y":75}, /// "n_tickets_pag":20, /// "estatico":[ /// {"x":50,"fonttype":"ArialBlack","fontsize":20,"texto":"espectaculo"}, /// {"x":150,"fonttype":"ArialBlack","fontsize":20,"texto":"abonado"}, /// {"x":270,"fonttype":"ArialBlack","fontsize":20,"texto":"devoluciones"}, /// {"x":1000,"fonttype":"ArialBlack","fontsize":20,"texto":"importe"} /// ], /// "offsetres":{"linea":"20","y":100}, /// "espectaculo":{"x":50,"fonttype":"verdana","fontsize":17}, /// "abonado":{"x":150,"fonttype":"verdana","fontsize":17}, /// "devoluciones":{"x":270,"fonttype":"verdana","fontsize":17}, /// "importe":{"x":1000,"fonttype":"verdana","fontsize":17} /// } /// </example> public SQLPDF(String pdfjson) { config = new Dictionary <string, Object>(); StreamReader r = new StreamReader(pdfjson); string sjson = r.ReadToEnd(); System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); config = serializer.Deserialize <Dictionary <string, Object> >(sjson); ArrayList estaticos = (ArrayList)config["estatico"]; destatico = new Dictionary <string, Estilo>(); foreach (Dictionary <string, Object> estatico in estaticos) { Estilo est = new Estilo(); est.x = Convert.ToInt32(estatico["x"]); est.fontsize = Convert.ToInt32(estatico["fontsize"]); est.fonttype = estatico["fonttype"].ToString(); destatico.Add(estatico["texto"].ToString(), est); } Dictionary <string, Object> doffset = (Dictionary <string, Object>)config["offset"]; offset = (float)Convert.ToDouble(doffset["y"].ToString()); Dictionary <string, Object> offsetres = (Dictionary <string, Object>)config["offsetres"]; linea = (float)Convert.ToDouble(offsetres["linea"].ToString()); y = (float)Convert.ToDouble(offsetres["y"].ToString()); n_tickets_pag = Convert.ToInt32(config["n_tickets_pag"].ToString()); }
/// <summary> /// Esta funcion busca la fuente de un texto estatico que pone nombre /// </summary> /// <param name="nombre"> texto del campo estatico del que queremos saber la fuente</param> /// <returns></returns> public System.Drawing.Font encontrar_font(string nombre) { Estilo est = destatico[nombre]; return(new System.Drawing.Font(est.fonttype, est.fontsize)); }
/// <summary> /// Esta funcion nos dice en que x tiene que ir el texto estatico nombre /// </summary> /// <param name="nombre">texto del campo estatico del que queremos saber su x</param> /// <returns></returns> public float encontrar_x(string nombre) { Estilo est = destatico[nombre]; return(est.x); }