Thursday, August 10, 2006

CREACION BASE DE DATOS CON MS ACCESS


Una vez más la necesidad hace que busque soluciones más simples de lo que no realmente quiere hacer, necesitaba una base de datos transportable, para cada usuario de una gran aplicacion, y como tienen las licencias, creo que esta es la mejor solución, así que decidí crear una base de batos a traves de codigo, para generarla al priemr encuentro con el programa y luego solo llenar con datos.esta vez el tipo de conexion es a travez de OLEDB.

using System;
using ADOX;
namespace CrearBaseDatosAccess
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
ADOX.CatalogClass cat = new ADOX.CatalogClass();
cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source = C:\\BaseDatos.mdb;" +
"Jet OLEDB:Engine Type=4");
Console.WriteLine("Base de Datos creada Exitosamente");
cat = null;
Conexion con = new Conexion();
con.CrearTabla();
}
}
}

Ahora agregamos una clase donde se crea una tabla dentro de la basa de datos:


using System;
using System.Data;
using System.Data.OleDb;
namespace CrearBaseDatosAccess
{
public class Conexion
{
string conex = "Provider = Microsoft.Jet.OLEDB.4.0;" +
"Data Source = C:\\BaseDatos.mdb;";
OleDbConnection con;
public void CrearTabla()
{
string crear = "CREATE TABLE datos(Nombre Char(25), Apellido Char(25)," +
"Email Char(25))";
con = new OleDbConnection(conex);
OleDbCommand cmd = new OleDbCommand(crear,con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
}

Thursday, August 03, 2006

PASAR DE WORD A PDF CON .NET (I PARTE)


Bueno, despues de tanto buscar, encontré por casualidad una parte de un codigo que me ayudaria a desarrollar lo que estaba buscando hace tiempo, poder pasar un documento MS Word a formato PDF a traves de codigo, sin un peso de pormedio, ¿como ocurrio...?, estaba buscando como poder leer solo una pagina en especifico de un pdf para poder recuperar sus valores, cuando aparecio este enlace, http://rajaamir.blogspot.com/2005/07/creating-word-to-pdf.html , aunque incompleto, estaba gran parte de lo que necesitaba, le faltaba la declaración del documento word, a continuacion pondré un procedimiento que desarrollé en base a lo anterior, la cual recibe el nombre del archivo seleccionado y lo transforma a pdf:
public void WordaDoc(string path)
{
Word.ApplicationClass WordApp = new Word.ApplicationClass();
object nombreDOC = path;
object readOnly = false;
object Visible = true;
object missing = System.Reflection.Missing.Value;
Word.Document doc = WordApp.Documents.Open(ref nombreDOC,
ref missing,ref readOnly, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref Visible);
com.lowagie.text.Document document = new ds.Document(ds.PageSize.A4, 36, 72, 108, 180);
PdfWriter.getInstance(document, new FileStream(doc.Name.Replace(".doc",".pdf"), FileMode.Create));
document.open();
foreach(Word.Paragraph para in doc.Paragraphs)
{
com.lowagie.text.Paragraph paragraph = new ds.Paragraph();
switch(para.Alignment)
{
case WdParagraphAlignment.wdAlignParagraphCenter:
paragraph.setAlignment(ds.ElementConst.ALIGN_CENTER);
break;
case WdParagraphAlignment.wdAlignParagraphJustify:
paragraph.setAlignment(ds.ElementConst.ALIGN_JUSTIFIED);
break;
case WdParagraphAlignment.wdAlignParagraphLeft:
paragraph.setAlignment(ds.ElementConst.ALIGN_LEFT);
break;
case WdParagraphAlignment.wdAlignParagraphRight:
paragraph.setAlignment(ds.ElementConst.ALIGN_RIGHT);
break;
}
paragraph.add(para.Range.Text);
document.add(paragraph);
}
document.close();
}


recuerden que deben usar la DLL iTextdotNet, y los siguientes namespaces:

using System;
using Word;
using System.Drawing.Imaging;
using ds=com.lowagie.text;
using com.lowagie.text.pdf;
using System.IO;


Ademas de agregar (en referencias), vjslib, esta es la primera parte porque falta capturar los formatos originales del archivo word (espacios de lineas, viñetas, etc), trabajaré para ello, SI ES QUE ALGUIEN NO ME AYUDA ANTES EN ESTO.
Saludos y suerte con el codigo.