Descarga contenido exclusivo en
Ofimática y Programación + Tecnología

jueves, 13 de diciembre de 2012



Android 4.0.3 para la Titan 7007b


Para aquellos que tienen una Tablet Titan PC7007B en el siguiente enlace hay una rom según la descripción del Android ICS. Para los que dese... thumbnail 1 summary
Para aquellos que tienen una Tablet Titan PC7007B en el siguiente enlace hay una rom según la descripción del Android ICS. Para los que deseen probarla y tratar de actualizar si no les funciono la de mi Table ya que mi Tablet Titan es PC7007 "no es A ni tampoco B". Aquí el enlace:


lunes, 27 de agosto de 2012



ROM Android 4.0.4 para probar en Titan 7007


Archivos de la Rom original de mi tablet (loader, kernel, boot, etc.) con el system.img de la custom rom  Evolution 3.0.0(beta)  de la Cube ... thumbnail 1 summary
Archivos de la Rom original de mi tablet (loader, kernel, boot, etc.) con el system.img de la custom rom Evolution 3.0.0(beta) de la Cube U9GT2 



Enlace de descarga: Descarga directa 

Observaciones 
En mi tablet: 
- Ya esta rooteada 
- Funciona el Wifi 
- Funciona la ranura microSD 
- Funciona la conexión USB 
- Funciona el Host USB 
- Funciona el audio 
- Funciona Google Play 
- Funciona el touch 
- Funciona la cámara 
- No funciona el acelerómetro 
- El launcher que trae da problemas, es necesario descargar uno e instalarselo 
- No se ven los controles touch del volumen 
- Al intentar instalar esta rom Evolution 3.0.0(beta) tal y como viene, no funciona. Por eso utilizo solamente el system.img 

Nota: no se si por usar solo el archivo system.img de la custom rom deja de ser Android 4.0.4 o si se pierden las mejoras. Espero que alguien me lo pueda aclarar??? 




lunes, 20 de agosto de 2012



Titan 7007 ICS - Juegos y aplicaciones que funcionan


En el siguiente enlace encontraran vídeos de algunos juegos y aplicaciones que se han probado y funcionan en la Titan 7007 ICS: http://o... thumbnail 1 summary
En el siguiente enlace encontraran vídeos de algunos juegos y aplicaciones que se han probado y funcionan en la Titan 7007 ICS:


jueves, 16 de agosto de 2012



Titan 7007 ICS - Archivo ROM del CD


Como me gano la curiosidad probe unas rom de la Cube U9GT2 y no me funcionaron, se quedo la tablet en blanco al intentar iniciar, asi es que... thumbnail 1 summary
Como me gano la curiosidad probe unas rom de la Cube U9GT2 y no me funcionaron, se quedo la tablet en blanco al intentar iniciar, asi es que ya quedan advertidos.

Restaure con el img que viene en mi CD y si es Android 4. Digo esto porque Titan en varios CD's mete versiones anteriores de Android aun y cuando venden el equipo con Android 4.0 instalado de fabrica.

Así que les dejo el enlace del archivo update.img por si lo quieren probar. Mi CD dice versión 1.0 y el nombre es 27-0700-0145








Titan 7007 ICS - Driver 64 bits para RKBatchTool


Por estar jugando con el Root le cause problemas a mi tablet confiado en que tenia el CD de fabrica para restaurarla pero resulto que no me ... thumbnail 1 summary
Por estar jugando con el Root le cause problemas a mi tablet confiado en que tenia el CD de fabrica para restaurarla pero resulto que no me funcionaron los driver del CD y estuve buscando y probando muchos otros tanto para Windows 7 64 bits y para Windows XP 32 bits y por fin encontre unos que si funcionan para Windows 7 64 bits. Se los comparto para que puedan tenerlos.

A mi me funciono con la Titan 7007 Android 4.0.3 no se como ira con otras RK2918 pero aquí lo dejo para que lo prueben si lo necesitan.

domingo, 12 de agosto de 2012



Titan 7007 ICS - Screencast


Les dejo una muestra de como funciona el Screencast en la Titan 7007 ICS Rooteada. Según el Bench de la aplicación la Titan 7007, por sus li... thumbnail 1 summary
Les dejo una muestra de como funciona el Screencast en la Titan 7007 ICS Rooteada. Según el Bench de la aplicación la Titan 7007, por sus limitaciones de hardware, solo debería de grabar video a 13.6 fps, grabar a más de eso da problemas con el rendimiento. Si se graba vídeo en los juegos se nota bastante aun y configurando a 10 fps.




al grabar un video mientras se ejecuta Asphalt 5 se nota claramente el efecto sobre el rendimiento de la Titan 7007 ICS:



esta es la fluidez que tiene el juego al grabar con camara:




martes, 7 de agosto de 2012



Titan 7007 ICS - ¡¡¡Si es posible el Rooteo!!!


Pasos en ingles para el rooteo  (son de una Cube U9GT2 pero igual funcionan con la 7007) The following procedure was tested successfull... thumbnail 1 summary

Pasos en ingles para el rooteo 
(son de una Cube U9GT2 pero igual funcionan con la 7007)


The following procedure was tested successfully on Cube U9GT2 with stock ICS 4.0.3 and on Win7 Ultimate Computer Disclaimer: Users accept all risks when trying this package. Credit to Prox32 for script. Visit www.flashmyandroid.com for more infor and support Dave.S 

1. Download and extract the file to Windows Desktop 
2. Switch tablet (on), and switch debugging (on) 
3. Connect Cube U9GT2 to PC using tablet's upper microUSB port (not OTG). 
4. Windows will now try to install drivers. Open Device Manager and find: Other Device --> Cube. Right click --> Update Driver Software -->Browse my Computer --> Let me pick --> Show All Devices --> Have Disk then browse to the extracted folder and select "android_winusb.inf". Windows may report error 'not digital signed', just ignore it and click 'Next'. When Windows reported success, and you see Device Manager -->Android Phone -->Android ADB Interface, all should be good. Close Device Manager. 
5. Double click on root.bat to run. Done. 

Con Windows 7 64bits no pude porque no me deja cambiar los driver. Yo lo hice con Windows XP. 


Video verificando el Rooteo 


link: http://www.youtube.com/watch?v=MgCBz6TGSuU&feature=player_embedded 






Pasos en español para el rooteo 
(son de una Titan 7010 pero igual funcionan con la 7007)


Miren este enlace: 
dijo:
http://www.grupoandroid.com/topic/53252-procedimiento-para-rootear-titan-7010/

ahí hay un procedimiento en español y un vídeo, es para la 7010 pero es lo mismo con la 7007. Los archivos que están en ese enlace que pongo no se si sirven para la 7007 yo solo he usado los que encuentran en este tema. 


Por cierto en este enlace encontré los archivos que yo utilizo.: 
dijo:
http://www.elcajontecnologico.com/root-tablet-titan-7010b-ics-android-t3946.html


Aquí hay unos vídeos propios de como rootear: Titan 7007 ICS - Como Rootear

y aquí el archivo ROM: Archivo ROM Android 4.0 Titan 7007









lunes, 6 de agosto de 2012



Titan 7007 ICS - Memoria RAM normalmente disponible


Ya había hablado sobre la memoria RAM de esta Tablet la cual a pesar de la especificación del sitio web Titan dice ser 512MB, thumbnail 1 summary
Ya había hablado sobre la memoria RAM de esta Tablet la cual a pesar de la especificación del sitio web Titan dice ser 512MB,


domingo, 5 de agosto de 2012



Titan 7007 ICS - Angry Birds


Les dejo un pequeño vídeo que muestra como la Tablet Titan 7007 ICS corre el juego Angry Birds. Para que la tomen en cuenta y no la despreci... thumbnail 1 summary
Les dejo un pequeño vídeo que muestra como la Tablet Titan 7007 ICS corre el juego Angry Birds. Para que la tomen en cuenta y no la desprecien totalmente por su limitada capacidad. Como podrán ver el video es jugando con ratón usb así comprueban el funcionamiento del Host USB.







Comparar datos de celda con lista en VBA Excel


Este es un planteamiento de una solicitud que vi en una web: Les explico, tengo un listado de "datos importantes" en una de las... thumbnail 1 summary
Este es un planteamiento de una solicitud que vi en una web:

Les explico, tengo un listado de "datos importantes" en una de las hojas del archivo Excel. En la otra tengo simplemente la hoja de entrada de datos por parte del usuario. La idea es que ingresará los datos en X rango, es decir, es arbitrario ese rango, pero lo importante sería poder comparar lo que ingrese el usuario, con los valores en la lista de "Datos importantes". De tal forma que si el usuario ingresa un dato considerado importante, la celda en la que lo ingrese se pinte de cierto color, y además aparezca un message box avisándole que es un dato importante.
Aquí les planteo una solución programada por mi para que la vean en caso de que alguien busque algo parecido:

sábado, 4 de agosto de 2012



Titan 7007 ICS - Asphalt 5


Les dejo un pequeño vídeo que muestra como la Tablet Titan 7007 ICS corre el juego Asphalt 5. La fluidez es bastante buena hasta el momento ... thumbnail 1 summary
Les dejo un pequeño vídeo que muestra como la Tablet Titan 7007 ICS corre el juego Asphalt 5. La fluidez es bastante buena hasta el momento no me ha dado problemas serios con eso. Lo que si podrán observar durante el vídeo es que de repente se activa la pausa y sale el menú, cuando juego con el acelerometro esto del menú no sucede, así es que tiene que ver con usar la pantalla táctil como control. Los Asphalt 6 y 7 no los he podido hacer funcionar.









Calculo de días hábiles trabajados en VBA Excel


Esta es una pequeña aplicación VBA Excel que calcula en un formulario los días hábiles trabajados en un periodo definido. Permite definir cu... thumbnail 1 summary
Esta es una pequeña aplicación VBA Excel que calcula en un formulario los días hábiles trabajados en un periodo definido. Permite definir cuantos días feriados hay para descontarlos y también resta los sábados y domingos como días no hábiles. Si se desea no descontar los sábados o domingos el código es fácilmente modificable.











Escribir Multi-Párrafos en una celda de Microsoft Excel: "Alt+ENTER"


Una característica a veces desconocida por muchos es la posibilidad de escribir varios párrafos en una misma celda en Excel. Por ejemplo, d... thumbnail 1 summary
Una característica a veces desconocida por muchos es la posibilidad de escribir varios párrafos en una misma celda en Excel. Por ejemplo, deseamos escribir lo siguiente en una celda:

Este es un primer párrafo de prueba.
Este es un segundo párrafo de prueba.

Este es un tercer párrafo de prueba.


viernes, 27 de julio de 2012



BulkWords: Generación de combinaciones de palabras online


BulkWords me ha resultado un sitio muy útil en esta última semana que tuve un requerimiento en mi trabajo sobre generar todas las combinaci... thumbnail 1 summary
BulkWords me ha resultado un sitio muy útil en esta última semana que tuve un requerimiento en mi trabajo sobre generar todas las combinaciones posibles que se pueden lograr con cierto número de materias primas. Tiene una interfaz muy sencilla de usar, no hay donde perderse y los resultados son inmediatos. Un sitio muy recomendado para esta tarea. Y lo mejor de todo que es gratis.

Video del sitio BulkWords

domingo, 22 de julio de 2012



Visual Basic 2010: Guardar .xls como .htm


Tengo la siguiente caso: un archivo llamado Informe.xls dos archivos a.xls y b.xls que serán modificados por dos personas el archivo I... thumbnail 1 summary
Tengo la siguiente caso:

  • un archivo llamado Informe.xls
  • dos archivos a.xls y b.xls que serán modificados por dos personas
  • el archivo Informe.xls esta vinculado a a.xls y b.xls y se modifica automaticamente según se modifican a.xls y b.xls
  • los jefes en la empresa no desean que el archivo informe se este abriendo para consultarlo, quieren solamente visualizarlo (sin invertir un centavo en un visor de archivos o un componente para VB .NET que logre esto)

Investigando un poco encontré una solución:


sábado, 30 de junio de 2012



Google Apps Script: Escribir siempre mayúsculas en TextBox


A veces es necesario forzar a que el usuario del software solamente pueda escribir con mayúsculas al introducir información, esto por varia... thumbnail 1 summary
A veces es necesario forzar a que el usuario del software solamente pueda escribir con mayúsculas al introducir información, esto por varias razones con las que cada programador ya se ha encontrado o se encontrara en algún momento.

Para lograr esto en un TextBox y luego guardar el valor en una celda es necesario hacer uso de los atributos CSS para que se vean siempre mayúsculas al escribir en el TextBox y de una propiedad para transformar el texto a mayúsculas al momento de guardar el texto en una celda.

En un archivo nuevo de Google Hoja de Cálculo abrimos el Editor de secuencias de comandos, entoces copiamos y pegamos el siguiente código:

viernes, 29 de junio de 2012



Google Apps Script: Modificar celda de hoja de cálculo en otro archivo


Mediante la programación también es posible modificar celdas de hojas de cálculo que se encuentran en otros archivos sin necesidad de abrir... thumbnail 1 summary
Mediante la programación también es posible modificar celdas de hojas de cálculo que se encuentran en otros archivos sin necesidad de abrirlos. Tomando el siguiente código, lo pegamos en el Editor de secuencias de comandos de un archivo:
function AsignarValor() {
   
  SpreadsheetApp.getActiveSpreadsheet().getSheets()[0].getRange("A1").setValue("Valor asignado a A1");
  
}

cambiamos getActiveSpreadsheet() por openById (aqui colocamos el ID del archivo donde queremos modificar A1). El ID de los archivos son los números y letras que están en la barra de direcciones al abrir un archivo después de key= y antes de #gid:

miércoles, 27 de junio de 2012



Zoho Sheet disponible ahora en Drive de Google


Pues eso, al hacer el cambio de Docs a Drive (por lo menos en mi caso fue hasta hacer el cambio) ya se tendría disponible Zoho Sheet como o... thumbnail 1 summary
Pues eso, al hacer el cambio de Docs a Drive (por lo menos en mi caso fue hasta hacer el cambio) ya se tendría disponible Zoho Sheet como otra opción Online para hojas de cálculo.


Antes de Drive:


lunes, 25 de junio de 2012



Google Apps Script: Atributos CSS en control Label


Los controles como los Label en Google Apps Script no son siempre solo de texto color negro. Es posible cambiar el color, la alineación del... thumbnail 1 summary
Los controles como los Label en Google Apps Script no son siempre solo de texto color negro. Es posible cambiar el color, la alineación del texto, el tamaño, subrayado, etc. Todo esto usando los atributos de CSS.

Un cambio importante es que no se coloca '-', es decir, en lugar de fon-Size se tiene que escribir fontSize

Para ilustrar mejor el uso, en un archivo nuevo de Google Hoja de Cálculo acceder al "Editor de secuencias de comandos...", entonces copiar y pegar el siguiente código:

domingo, 24 de junio de 2012



Bookmark and Share Marcador fijo para Blogger


Despreocúpate por reservar espacio para botnes de redes sociales, mejor visita este enlace y aprende como poner este elegante marcador en ... thumbnail 1 summary
Despreocúpate por reservar espacio para botnes de redes sociales, mejor visita este enlace y aprende como poner este elegante marcador en tu Blog:







jueves, 21 de junio de 2012



Google Apps Script: Agregar menú propio a Google Hoja de Cálculo


Al igual que en Excel en Google Hoja de Cálculo también es posible agregar entradas de menú a la hoja con la que estamos trabajando.  Esto ... thumbnail 1 summary
Al igual que en Excel en Google Hoja de Cálculo también es posible agregar entradas de menú a la hoja con la que estamos trabajando. Esto resulta útil para organizar y acceder más rápido a las funciones que programamos.

En un archivo nuevo de Google Hoja de Cálculo abrir el "Editor de secuencias de comandos...", entonces copiar y pegar el siguiente código:
function onOpen() { //esta linea es necesaria para que el código se ejecute al abrir el documento

  var libro = SpreadsheetApp.getActiveSpreadsheet(); //declara la hoja activa como "libro" para futuras referencias en este código
  var menupropio =[{name:"menu_de_prueba", functionName:"funcion_menu"}]; //declara y construye el menú
                                                                          //la primera entrada en el menú será "menu_de_prueba"
                                                                          //la función a ejecutar al dar clic en la entrada será "uncion_menu"

  libro.addMenu("Menu personal", menupropio); //agrega el menú al libro. El texto que aparecerá a la derecha del menú ayuda es "Menú personal"
}

function funcion_menu(){ //construimos la función que se ejecutará
  Browser.msgBox("Este es un menu de prueba");
}


Para probar el funcionamiento debemos actualizar el documento o cerrarlo y volver a abrirlo. Entonces veremos como aparece nuestro menú personal:


y el resultado al dar clic en la entrada:










Subtitle Workshop herramienta gratis para subtitular videos


Subtitle Workshop is the most complete, efficient and convenient subtitle editing tool. It supports all the subtitle formats you need and h... thumbnail 1 summary
Subtitle Workshop is the most complete, efficient and convenient subtitle editing tool. It supports all the subtitle formats you need and has all the features you would want from a subtitle editing program. Subtitle Workshop makes subtitle creating/editing/converting tasks almost a pleasure, the amicable and intuitive interface mixes easy to access menus & must have features with advanced functions and a remarkable speed and stability, drastically reducing subtitle editing time. It includes spell check function and an advanced video preview feature which will ease the task even more. The best choice for the beginner, expert or the fansubber. Have a try, and you'll forget the rest!.

Subtitle Workshop was originally thought in order to make subtitle editing very easy, but having all the necessary and not-so-necessary features that make the life of a subtitle editor or translator easier. The visual interface is one of the many things that characterizes Subtitle Workshop. Most of the options are indeed, self-explanatory so even a kid can use this software.




Una excelente herramienta para subtitular y con soporte para gran variedad de formatos. Descarga el programa desde aquí.






Acordeon en Blogger por www.compartidisimo.com


Si deseas colocar un acordeon con contenido para mantener muchas cosas ordenadas en tu Blog así como el insertado en la sección de VideoTu... thumbnail 1 summary
Si deseas colocar un acordeon con contenido para mantener muchas cosas ordenadas en tu Blog así como el insertado en la sección de VideoTutoriales:


No busques más entra en este enlace y aprende como hacerlo en pocos minutos.




sábado, 16 de junio de 2012



CamStudio Herramienta Free para videotutoriales


¿Qué es esto? CamStudio  es una utilidad para Windows que permite realizar la grabación de todo lo que sucede en tu escritorio, graband... thumbnail 1 summary
¿Qué es esto?

CamStudio es una utilidad para Windows que permite realizar la grabación de todo lo que sucede en tu escritorio, grabando tanto la pantalla completa, como ventanas o zonas definidas, así como el audio que este activo en ese momento, incluso lo que grabes desde un micrófono, generando un fichero en el formato de vídeo AVI y utilizando el generador de SWF en formato Flash para integrar de forma sencilla en tu web, generando un fichero de peso reducido y con soporte para Streaming de vídeo sobre flash.


Descarga directa en: CamStudio

Es suficiente para iniciarse en esto de los videotutoriales y lo más importante que es Software gratis, sin necesidad de pagar cientos de dolares, instalación rápida y poco espacio en disco duro.

La sección de videotutoriales estará disponible en breve en este Blog y esta será la primera herramienta de este tipo que se utilizara. Apoyemos el Software Libre siempre que se pueda.

Entren a CamStudio para conocer más sobre las características de esta herramienta.

viernes, 15 de junio de 2012



Visual Basic 2010: KRYPTON TOOLKIT Free Windows Forms Controls


Otra recomendación de controles gratis para nuestras aplicaciones en Microsoft Visual Basic 2010 es KRYPTON TOOLKIT. Un paquete bastante bue... thumbnail 1 summary
Otra recomendación de controles gratis para nuestras aplicaciones en Microsoft Visual Basic 2010 es KRYPTON TOOLKIT. Un paquete bastante bueno con muchas opciones de configuración para los controles que pueden mejorar en mucho y con poco esfuerzo la estética de nuestras aplicaciones.

Descarga de los controles aqui: http://www.componentfactory.com/product?id=3


Por ejemplo, con algo de carpintería y creatividad se pueden simular cintas de botones:


video

Además del cambio de color con temas predefinidos, colores en los botones, etc., etc., etc.

Simplemente muy recomendada.




jueves, 14 de junio de 2012



Google Apps Script: Asignar función a celda con programación


Algo necesario en algunas ocasiones para evitar que se borren accidentalmente funciones insertadas en celdas es el poder asignar las funcion... thumbnail 1 summary
Algo necesario en algunas ocasiones para evitar que se borren accidentalmente funciones insertadas en celdas es el poder asignar las funciones a través de programación para que nunca se pierdan, recordemos que no todos los usuarios de software tienen la misma habilidad y algo como lo que aquí se explica disminuye esas imprevistas necesidades de darle mantenimiento a los archivos.

Primero creamos un nuevo documento con Google Hoja de Cálculo. Abrimos el "Editor de secuencias de comandos..." y copiamos y pegamos el siguiente código que calcula en A1 el promedio del rango A2:A5
function onEdit(Even) { // es necesario dejar la función de este modo para que se ejecute cada vez
                        //que se modifique el valor en alguna celda, de este modo si accidentalmente
                        //le damos borrar a la celda A1 el evento la activa y la formula se inserta
                        //automaticamente de nuevo en la celda A1

    SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Hoja 1"). //nombre de la hoja donde se insertara la función
                                                    getRange("A1"). //rango de la hoja donde se insertara la función
                                      setFormula("average(A2:A5)"); //la formula se escribe como cadena de texto tal y como
                                                                    //se escribiría en la celda pero sin el signo = al principio           
}

¡Listo!, ahora por más que le den borrar a la celda A1 la formula siempre se volverá a insertar. Además aprendimos como ejecutar código al modificar la celdas muy al estilo del evento SelectionChange de las hojas de cálculo en VBA Excel:










Google Apps Script: ListBox


Google Apps Script  también tiene múltiples controles al igual que Microsoft VBA. Esta vez veremos un ejemplo de ListBox y como utilizar el ... thumbnail 1 summary
Google Apps Script  también tiene múltiples controles al igual que Microsoft VBA. Esta vez veremos un ejemplo de ListBox y como utilizar el valor seleccionado en el.

Con un nuevo archivo de Google Hoja de Cálculo en un proyecto nuevo en el Editor de secuencia de comandos copiar y pegar el siguiente código:
function Ejemplo() {
   var libro = SpreadsheetApp.getActiveSpreadsheet();
   var cuadro = UiApp.createApplication().setTitle('Ejemplo de ListBox');
   var panel1 = cuadro.createHorizontalPanel(); //espacio donde se agruparan controles
                                                    //este indica un orden horizontal
   var ListBox = cuadro.createListBox(true) //se declara el ListBox
                 .setId('ID001').setName('nombres') //identificación del List Box
                 .setWidth(150); //ancho del ListBox

   ListBox.setVisibleItemCount(5); //cuantos elementos se desea visualizar
   ListBox.addItem('Juan'); //agregar items al ListBox
   ListBox.addItem('Pérez');
   ListBox.addItem('Alberto');
   ListBox.addItem('Manuel');
   ListBox.addItem('García');
   ListBox.addItem('Felix');
   ListBox.addItem('Carlos');
   ListBox.addItem('Manfredo');

   var Button = cuadro.createButton('Copiar a A1'); //declara un botón para usar el valor seleccionado del ListBox
   var Evento = cuadro.createServerClickHandler('EventoClic').addCallbackElement(panel1); //se declara el evento clic del Button
   Button.addClickHandler(Evento);

   panel1.add(ListBox); //se agrega el ListBox al panel1
   panel1.add(Button); //se agrega el Button al panel1
   cuadro.add(panel1); //se agrega el panel1 a cuadro
   libro.show(cuadro); //se muestra cuadro
 }


 function EventoClic(eventInfo) {
   var cuadro = UiApp.getActiveApplication();

   var value = eventInfo.parameter.nombres; //toma el valor del ListBox

   var libro = SpreadsheetApp.getActiveSpreadsheet();
   
   
   libro.getRange('A1').setValue(value); //asigna el valor seleccionado del ListBox a la celda A1
   return cuadro;
 }


miércoles, 13 de junio de 2012



Copiar datos desde otra hoja sin abrir el archivo base de datos, para proyectos VBA Excel


Ya vimos antes como copiar datos de otro archivo pero en ese método es necesario abrir el archivo fuente de datos para poder copiar lo que q... thumbnail 1 summary
Ya vimos antes como copiar datos de otro archivo pero en ese método es necesario abrir el archivo fuente de datos para poder copiar lo que queremos. Lo siguiente es un código que encontre en la red, este permite copiar los datos sin necesidad de abrir el archivo.

En un archivo nuevo de Excel, insertar en la hoja un CommandButton.





Visual Basic 2010: Minimizar aplicaciones a la Tray Bar


Esta es una opción muy útil para mantener limpia de demasiadas aplicaciones la pantalla de la PC. Con Microsoft Visual Basic 2010 Express es... thumbnail 1 summary
Esta es una opción muy útil para mantener limpia de demasiadas aplicaciones la pantalla de la PC. Con Microsoft Visual Basic 2010 Express es algo bastante sencillo:

1
En un proyecto nuevo de Microsoft Visual Studio 2010 Express agregar un Button y un NotifyIcon:



martes, 12 de junio de 2012



ListBox multicolumna en Microsoft VBA


Este contenido explica como configurar más de una columna en un ListBox con el editor VBA de Microsoft Excel: 1 En un archivo nuevo de Ex... thumbnail 1 summary
Este contenido explica como configurar más de una columna en un ListBox con el editor VBA de Microsoft Excel:

1
En un archivo nuevo de Excel abrir el editor VBA. Insertar un UserForm y un ListBox en el:




lunes, 11 de junio de 2012



Visual Basic 2010: Librería gráfica ZedGraph


Les comparto el vínculo, para quienes no la conocen, de una librería gráfica que puede ser usada en nuestros proyectos de Microsoft Visual B... thumbnail 1 summary
Les comparto el vínculo, para quienes no la conocen, de una librería gráfica que puede ser usada en nuestros proyectos de Microsoft Visual Basic 2010. Es muy buena opción. De momento les comparto solo el enlace y en un futuro veremos algunos ejemplos.



domingo, 10 de junio de 2012



iTextSharp y VB .Net: Vínculos internos


The iText library is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License versi... thumbnail 1 summary
The iText library is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License version 3. Please read the terms of use before downloading iText.

Descarga iTextSharp: http://adf.ly/AkZzN


En la publicación anterior vimos como poner un enlace a una dirección web. Esta vez es el turno de los vínculos internos, algo muy necesario y útil cuando tenemos un indice o un archivo bastante extenso, al menos algo que yo como lector agradezco mucho cuando lo encuentro.

Siempre en un proyecto nuevo con Microsoft Visual Studio 2010 Express agregar un Form y un Button, entonces copiar y pegar el siguiente código:

Imports iTextSharp.text.pdf
Imports iTextSharp.text
Imports System.IO

Public Class Form1

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim ruta As String = "itextsharp - vínculos internos.pdf" 'ruta del pdf (se creara en la carpeta Debug del proyecto
        Dim documento As New iTextSharp.text.Document(PageSize.LETTER, 72, 72, 72, 72)
        Dim pdfw As iTextSharp.text.pdf.PdfWriter

        pdfw = PdfWriter.GetInstance(documento, New FileStream(ruta, FileMode.Create, FileAccess.Write, FileShare.None))

        'Apertura del documento.
        documento.Open()

        'Agregamos una pagina.
        documento.NewPage()

        documento.Add(New Paragraph("INDICE"))
        documento.Add(New Paragraph(" "))

        Dim Tema1 As New Anchor("Tema 1") 'declaración del vínculo con el texto que se mostrara en el documento
        Tema1.Reference = "#Tema 1"       'nombre de la referencia dl vículo declarado
        documento.Add(Tema1)              'se agrega el vículo al documento
        documento.Add(New Paragraph(""))  'pasar a nueva linea

        Dim Tema2 As New Anchor("Tema 2") 'declaración del vínculo con el texto que se mostrara en el documento
        Tema2.Reference = "#Tema 2"       'nombre de la referencia dl vículo declarado
        documento.Add(Tema2)              'se agrega el vículo al documento
        documento.Add(New Paragraph(""))  'pasar a nueva linea

        Dim Tema3 As New Anchor("Tema 3") 'declaración del vínculo con el texto que se mostrara en el documento
        Tema3.Reference = "#Tema 3"       'nombre de la referencia dl vículo declarado
        documento.Add(Tema3)              'se agrega el vículo al documento

        'Agregamos una pagina.
        documento.NewPage()                                   'nueva página para iniciar el tema 1
        Dim aqui_Tema1 As New Anchor("Desarrollo del Tema 1") 'se declara destino del vículo Tema1
        aqui_Tema1.Name = "Tema 1"                            'se da el mismo nombre que Tema1.Referencia pero sin el #
        documento.Add(aqui_Tema1)                             'se agega el destino del vínculo

        'Agregamos una pagina.
        documento.NewPage()                                   'nueva página para iniciar el tema 2
        Dim aqui_Tema2 As New Anchor("Desarrollo del Tema 2") 'se declara destino del vículo Tema2
        aqui_Tema2.Name = "Tema 2"                            'se da el mismo nombre que Tema2.Referencia pero sin el #
        documento.Add(aqui_Tema2)                             'se agega el destino del vínculo

        'Agregamos una pagina.
        documento.NewPage()                                   'nueva página para iniciar el tema 3
        Dim aqui_Tema3 As New Anchor("Desarrollo del Tema 3") 'se declara destino del vículo Tema3
        aqui_Tema3.Name = "Tema 3"                            'se da el mismo nombre que Tema3.Referencia pero sin el #
        documento.Add(aqui_Tema3)                             'se agega el destino del vínculo


        'Forzamos vaciamiento del buffer.
        pdfw.Flush()
        'Cerramos el documento.
        documento.Close()

        pdfw = Nothing
        documento = Nothing

    End Sub
End Class




El archivo .pdf se crea en la carpeta Debug del proyecto.

La descarga del archivo aquí: itextsharp - vínculos internos.rar






iTextSharp y VB .Net: Enlace a web


The iText library is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License versi... thumbnail 1 summary
The iText library is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License version 3. Please read the terms of use before downloading iText.

Descarga iTextSharp: http://itextpdf.com/download.php


Este código nos muestra lo fácil que es colocar en nuestro archivo pdf un enlace a alguna página en la red. En un proyecto nuevo con Microsoft Visual Basic 2010 Express agregar un Form y un Button, entonces copiar y pegar el siguiente código.

Public Class Form1

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim ruta As String = "itextsharp - enlace a web.pdf" 'ruta del pdf (se creara en la carpeta Debug del proyecto
        Dim documento As New iTextSharp.text.Document(PageSize.LETTER, 72, 72, 72, 72)
        Dim pdfw As iTextSharp.text.pdf.PdfWriter

        pdfw = PdfWriter.GetInstance(documento, New FileStream(ruta, FileMode.Create, FileAccess.Write, FileShare.None))

        'Apertura del documento.
        documento.Open()

        'Agregamos una pagina.
        documento.NewPage()


        Dim enlace As New Anchor("Ofimática y Programación") 'texto que se mostrara
        enlace.Reference = "http://ofimatica-programacion.blogspot.com/" 'enlace url
        documento.Add(enlace)


        'Forzamos vaciamiento del buffer.
        pdfw.Flush()
        'Cerramos el documento.
        documento.Close()

        pdfw = Nothing
        documento = Nothing

    End Sub
End Class


Imports iTextSharp.text.pdf Imports iTextSharp.text Imports System.IO

Descarga del archivo aquí: itextsharp - enlace a web




sábado, 9 de junio de 2012



Copiar datos de otro libro con Microsoft VBA Excel


Se muestra un ejemplo de un método para copiar los datos de la hoja de un libro, tal vez de un archivo usado solo como base de datos, hacia ... thumbnail 1 summary
Se muestra un ejemplo de un método para copiar los datos de la hoja de un libro, tal vez de un archivo usado solo como base de datos, hacia el libro actualmente abierto.

Existe más de una forma para lograr lo aquí mencionado. El siguiente código es uno muy sencillo y básico que incluso requiere la apertura del archivo fuente para copiar los datos, sin embargo todo este proceso de abrir, copiar, pegar y cerrar puede ocultarse bastante al desactivar la actualización de pantalla.

viernes, 8 de junio de 2012



Gráficos con dos escalas en Excel 2010


En ocasiones puede ser deseable mostrar dos grupos de datos en dos escalas distintas en un mismo gráfico, por ejemplo: Valores enteros y ... thumbnail 1 summary
En ocasiones puede ser deseable mostrar dos grupos de datos en dos escalas distintas en un mismo gráfico, por ejemplo:

  • Valores enteros y porcentajes
  • Campanas de Gauss
  • etc.
en Excel es posible de la siguiente forma:

1
Crear una tabla de datos con escalas distintas:





Parte 3 - Control de actividades diarias en Microsoft VBA Excel


Esta vez para dar por finalizada la aplicación VBA se agrego la capacidad para dar un conteo de las actividades por tipo iniciadas cada mes:... thumbnail 1 summary
Esta vez para dar por finalizada la aplicación VBA se agrego la capacidad para dar un conteo de las actividades por tipo iniciadas cada mes:





jueves, 7 de junio de 2012



Abrir .doc en una parte prefijada desde Excel


Para combinar el uso de Excel y Word en algunas labores cotidianas se tiene la necesidad de abrir documentos o informes de Word en ciertas p... thumbnail 1 summary
Para combinar el uso de Excel y Word en algunas labores cotidianas se tiene la necesidad de abrir documentos o informes de Word en ciertas partes prefijadas.

Es decir, para hacerlo más cómodo es deseable que el .doc se abra exactamente en un lugar especifico, más aún si son documentos extensos.

Veamos pues como con Microsoft VBA se pueden ejecutar lineas de código que abran un .doc desde un .xls en un lugar especifico y no solo desde el principio.

1
Crear un archivo nuevo de Microsoft Word de 3 páginas. Ir a cada página e insertar un marcador:

Buscar la opción en la cinta insertar de Word


miércoles, 6 de junio de 2012



Código gratis: Buscador de una lista de productos


Esta vez les presento un buscador que me llamo mucho la atención por la creación de hipervínculos a través de código. Es un proyecto de Micr... thumbnail 1 summary
Esta vez les presento un buscador que me llamo mucho la atención por la creación de hipervínculos a través de código. Es un proyecto de Microsoft VBA. No es de mi creación, yo solamente le hice algunas modificaciones que alguien solicito.



El post donde lo conocí lo encuentran aquí, si les interesa conocer la fuente pueden registrarse en ese sitio y preguntarle a quien los posteo.








Google Apps Script: Colores en celdas


El siguiente código muestra como hacer para dar colores a las celdas y al texto a través de la programación Google Apps Script. Con un nuevo... thumbnail 1 summary
El siguiente código muestra como hacer para dar colores a las celdas y al texto a través de la programación Google Apps Script. Con un nuevo archivo de Google Hoja de Cálculo en un proyecto nuevo en el Editor de secuencia de comandos copiar y pegar el siguiente código:

function ColorCelda() {
  var libro = SpreadsheetApp.getActiveSpreadsheet();
  var hoja = libro.getSheets()[0];
  
    hoja.getRange("B2").setValue("color celda 1").setBackgroundColor('#56fd5f');//da color de relleno a celda

    hoja.getRange("B4").setValue("color celda 2").setBackgroundColor('#aca4a3');//da color de relleno a celda

    hoja.getRange("D2").setValue("color texto 1").setFontColor('#56fd5f');//da color de texto a celda

    hoja.getRange("D4").setValue("color texto 2").setFontColor('#aca4a3');//da color de texto a celda
    
    
    //se puede crear formato condicional más personalizado
    //por ejemplo color en una celda dependiendo del valor en otra
    //al ejecutar el código veremos los cambios en la celda B8 si B6 vale 1 u otro valor
    if (hoja.getRange("B6").getValue()==1)
    {
      hoja.getRange("B8").setValue("B6 tiene valor 1").setBackgroundColor('#663dff').setFontColor('#ffffff');//las instrucciones de color de relleno 
    }                                                                                                        //y texto pueden combinarse en una sola linea de código
    else
    {
      hoja.getRange("B8").setValue("B6 tiene no tiene valor 1").setBackgroundColor('#ffffff').setFontColor('#000000');
    }
    
}


martes, 5 de junio de 2012



Visual Basic 2010/Código gratis: Visor de PDF relacionados


Las entregas de Código gratis  serán proyectos sin ninguna explicación especial del código que lo compone. Simplemente el archivo rar con el... thumbnail 1 summary


Las entregas de Código gratis serán proyectos sin ninguna explicación especial del código que lo compone. Simplemente el archivo rar con el proyecto y alguna explicación total o parcial sobre que hace el programa y como funciona. Que sea útil o no, todo o parte del código depende totalmente de ustedes.

Este visor de pdf fue creado para mostrar dos pdf relacionados, es decir un pdf tenia el dibujo de una caja de cartón corrugado con las medidas (llamado desarrollo) y el otro pdf tenia el dibujo de la misma caja de cartón corrugado pero con colores, textos y formas (llamado desplegado).

Fue creado de modo que no tenga opciones de imprimir o guardar asi como las tiene Adobe Reader, para evitar que se roben los diseños de las cajas.



Parte 2 - Control de actividades diarias en Microsoft VBA Excel


Se agrego un primer avance del consolidado mensual de actividades, es muy sencillo de utilizar. Solamente es necesario elegir el mes en el C... thumbnail 1 summary
Se agrego un primer avance del consolidado mensual de actividades, es muy sencillo de utilizar. Solamente es necesario elegir el mes en el ComboBox y los cuadros de texto tomaran el valor de cuantas actividades se realizaron cada día y se desplazaran hacia arriba para tener un mejor panorama gráfico de cuales días se estuvo mas ocupado o en cuales se realizaron más actividades.

lunes, 4 de junio de 2012



Buscador de frases ListBox vs TextBox con VBA Excel


En algún proyecto podemos desear programar un buscador de frases, es decir, mostrar todas las frases que coinciden con una palabra buscada... thumbnail 1 summary


En algún proyecto podemos desear programar un buscador de frases, es decir, mostrar todas las frases que coinciden con una palabra buscada. El control normalmente utilizado para mostrar los resultados de la busqueda es un ListBox sin embargo este control carece de la propiedad WordWrap y MultiLine, por lo tanto si son frases largas habría que desplazarse horizontalmente para poder leerla completa.

Veremos hoy una alternativa a esto utilizando un TextBox:

domingo, 3 de junio de 2012



Parte 1 - Control de actividades diarias en Microsoft VBA Excel


Si alguna vez han tenido la exigencia de presentar o administrar un control de las actividades diarias en su trabajo, esta hoja de cálcul... thumbnail 1 summary


Si alguna vez han tenido la exigencia de presentar o administrar un control de las actividades diarias en su trabajo, esta hoja de cálculo puede ser de mucha ayuda. Aún y cuando esta a un nivel muy básico puede ser suficiente para la mayoría de los casos, además teniendo normalmente siempre Microsoft Excel en el trabajo su costo es bajo y con la gran ventaja de poder personalizarla exactamente a las necesidades de cada uno.

La hoja se compone de tres partes:


La primera: Muestra el resumen de actividades realizadas para el día seleccionado.

sábado, 2 de junio de 2012



iTextSharp y VB .Net: Lineas y rectángulos


pay per click The iText library is free software; you can redistribute it and/or modify it under the terms of the GNU Affero Gen... thumbnail 1 summary



The iText library is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License version 3. Please read the terms of use before downloading iText.

Descarga iTextSharp: http://itextpdf.com/download.php

Hoy veremos como dibujar lineas simples, lineas de varios segmentos, rectángulos sin relleno y rectángulos con relleno en nuestro documento pdf. Siempre en un proyecto nuevo de Microsoft Visual Basic 2010 Express copiar y pegar el siguiente código, recuerden siempre hacer referencia a la librería itextsharp.dll:



iTextSharp y VB .Net: Insertar imagen


pay per click The iText library is free software; you can redistribute it and/or modify it under the terms of the GNU Affero Gen... thumbnail 1 summary



The iText library is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License version 3. Please read the terms of use before downloading iText.

Descarga iTextSharp: http://itextpdf.com/download.php

Veremos en esta sección como insertar una imagen en nuestro documento pdf. Para ello creamos un nuevo proyecto en Microsoft Visual Basic 2010 Express y pegamos el siguiente código:




Imports iTextSharp.text.pdf
Imports iTextSharp.text
Imports System.IO

Public Class Form1

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim ruta As String = "itextsharp - tipo de fuente.pdf" 'ruta del pdf (se creara en la carpeta Debug del proyecto
        Dim textoArial As String = "Ejemplo de personalizacion de fuente Arial"
        Dim textoCalibri As String = "Ejemplo de personalizacion de fuente Calibri"
        Dim textoVerdana As String = "Ejemplo de personalizacion de fuente Verdana"
        Dim documento As New iTextSharp.text.Document(PageSize.LETTER, 72, 72, 72, 72)
        Dim pdfw As iTextSharp.text.pdf.PdfWriter

        'craeación de fuentes arial, calibri y verdana
        Dim fuenteArial As New Font(BaseFont.CreateFont("c:/windows/fonts/arial.ttf", BaseFont.WINANSI, BaseFont.EMBEDDED), 12)
        Dim fuenteCalibri As New Font(BaseFont.CreateFont("c:/windows/fonts/calibri.ttf", BaseFont.WINANSI, BaseFont.EMBEDDED), 12)
        Dim fuenteVerdana As New Font(BaseFont.CreateFont("c:/windows/fonts/verdana.ttf", BaseFont.WINANSI, BaseFont.EMBEDDED), 12)

        pdfw = PdfWriter.GetInstance(documento, New FileStream(ruta, FileMode.Create, FileAccess.Write, FileShare.None))

        'Apertura del documento.
        documento.Open()

        'Agregamos una pagina.
        documento.NewPage()

        'posicionar y redimensionarfranja azul
        Dim imagen As iTextSharp.text.Image 'declaración de imagen
        imagen = iTextSharp.text.Image.GetInstance(My.Application.Info.DirectoryPath & "\sket-dance.jpg") 'nombre y ruta de la imagen a insertar
        imagen.ScalePercent(16.7) 'escala al tamaño de la imagen
        imagen.SetAbsolutePosition(40, 500) 'posición en la que se inserta. 40 (de izquierda a derecha). 500 (de abajo hacia arriba)

        documento.Add(imagen) 'se agrega la imagen al documento

        'Forzamos vaciamiento del buffer.
        pdfw.Flush()
        'Cerramos el documento.
        documento.Close()

        pdfw = Nothing
        documento = Nothing

    End Sub
End Class

viernes, 1 de junio de 2012



iTextSharp y VB .Net: Tipo de fuente


pay per click The iText library is free software; you can redistribute it and/or modify it under the terms of the GNU Affero Gen... thumbnail 1 summary



The iText library is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License version 3. Please read the terms of use before downloading iText.

Descarga iTextSharp: http://itextpdf.com/download.php

Con iTextSharp también es posible personalizar el tipo de fuente que se desea, para no tener que ajustarse siempre a las que ya tiene definidas la librería. A continuación el siguiente ejemplo muestra como escribir texto en un pdf con las fuentes Arial, Calibri y Verdana:

jueves, 31 de mayo de 2012



Google Apps Script: Crear funciones propias


pay per click Al igual que en Microsoft Excel en Google Hoja de Calculo también se pueden crear funciones propias. Veamos a conti... thumbnail 1 summary



Al igual que en Microsoft Excel en Google Hoja de Calculo también se pueden crear funciones propias. Veamos a continuación como crear una sencilla función para calcular el área de un circulo.

En un proyecto nuevo en el Editor de secuencia de comandos copiar y pegar el siguiente código:

function aCirc(radio) {
  var area = 0;               // valor que se devuelve
  area = 3.1416*radio*radio;  // calcula el área
  return area;                // devuelve el valor
}

La forma de llamar la función es igual de cuando se crean en Microsoft Excel, es decir "=Nombre_de_la_función":




miércoles, 30 de mayo de 2012



Google Apps Script: Cuadros de dialogo inputBox y msgBox


Con el siguiente código aprenderemos como mostrar cuadros de dialogo en Google Hoja de Calculo ya sea para mostrar mensajes o para solicit... thumbnail 1 summary

Con el siguiente código aprenderemos como mostrar cuadros de dialogo en Google Hoja de Calculo ya sea para mostrar mensajes o para solicitar que se ingrese algún valor. Algo bastante sencillo.

En un proyecto nuevo en el Editor de secuencia de comandos copiar y pegar el siguiente código:

function ejemplo() {
    Browser.msgBox("msgBox", "Este es un msgBox y el siguiente es un inputBox", Browser.Buttons.OK);
    Browser.inputBox("inputBox","Ingresar nombre", Browser.Buttons.OK_CANCEL);
}

Al ejecutar este código se observa lo siguiente:



para poder utilizar el dato ingresado en el inputBox y asignarlo a una celda se escribe lo siguiente:

function ejemplo() {
function ejemplo() {
    Browser.msgBox("msgBox", "Este es un msgBox y el siguiente es un inputBox", Browser.Buttons.OK);
    SpreadsheetApp.getActiveSpreadsheet().getSheets()[0].getRange("A1").setValue(Browser.inputBox("inputBox","Ingresar nombre", Browser.Buttons.OK_CANCEL));
}}

o bien se puede ordenar mejor de la siguiente forma:

function ejemplo() {
  Browser.msgBox("msgBox", "Este es un msgBox y el siguiente es un inputBox", Browser.Buttons.OK);
  
  var libro = SpreadsheetApp.getActiveSpreadsheet();
  var hoja = libro.getSheets()[0];
  var nombre = Browser.inputBox("inputBox","Ingresar nombre", Browser.Buttons.OK_CANCEL); 
  var celda = hoja.getRange("A1");
  celda.setValue(nombre);
}

con este último código el dato ingresado en el inputBox se asigna a la celda A1.






martes, 29 de mayo de 2012



Google Apps Script: Asignar valor a celda


pay per click Google SpreadSheets tiene su propio lenguaje de programación, algo tipo VBA de Microsoft Office. Veremos a continua... thumbnail 1 summary



Google SpreadSheets tiene su propio lenguaje de programación, algo tipo VBA de Microsoft Office. Veremos a continuación un sencillo ejemplo de como asignar valores a las celdas mediante código:

1
Crear una nueva Hoja de Calculo y abrir el Script Editor con "Herramientas>Editor de secuencias de comando...":


2
Borrar ese código existente. Copiar y pegar el siguiente código:
function AsignarValor() {
  
  SpreadsheetApp.getActiveSpreadsheet().getSheets()[0].getRange("A1").setValue("Valor asignado a A1");
 
}


3
Ejecutar el código con el Menú o el Botón:


y observar el resultado:



Con estos sencillos pasos hemos logrado nuestra primera Secuencia de Comandos.

Para ejecutar desde la Hoja de Calculo ir a "Herramientas>Administrador de secuencias de comandos...", elegir la función y clic en "Ejecutar":








lunes, 28 de mayo de 2012



iTextSharp y VB .Net: Tamaño de hoja y margenes


pay per click The iText library is free software; you can redistribute it and/or modify it under the terms of the GNU Affero Gen... thumbnail 1 summary



The iText library is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License version 3. Please read the terms of use before downloading iText.

Descarga iTextSharp: http://itextpdf.com/download.php

El tamaño de hoja en el archivo pdf creado con iTextSharp también es posible configurarlo así como sus margenes, para ello veamos el siguiente código:

 
Imports iTextSharp.text.pdf
Imports iTextSharp.text
Imports System.IO


Public Class Form1

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim ruta As Integer
        Save.Filter = "Archivos Adobe PDF (*.pdf)|*.pdf"
        ruta = Save.ShowDialog
        If ruta = 2 Then GoTo salir

        Try
            Kill(Save.FileName)
        Catch ex As Exception
        End Try

        Dim oDoc As New iTextSharp.text.Document(PageSize.LETTER, 36, 36, 36, 36)   'aquí se coloca el tamañode hoja y los margenes
        Dim pdfw As iTextSharp.text.pdf.PdfWriter                                   '36 pt equivalen supuestamente a 0.5 pulgadas, aunque quiza depende
        Dim NombreArchivo As String = Save.FileName                                 'de la impresora porque a mi no me da exactamente 0.5 pulgadas pero si 
        Try                                                                         'es muy cercano
            pdfw = PdfWriter.GetInstance(oDoc, New FileStream(NombreArchivo, _
            FileMode.Create, FileAccess.Write, FileShare.None))

            'Apertura del documento.
            oDoc.Open()

            'Agregamos una pagina.
            oDoc.NewPage()


            Dim parafo As New Chunk("Esta es una prueba de tamaño de página y de la dimensión de los parrafos del documento que se esta creando")

            oDoc.Add(parafo)


            'Forzamos vaciamiento del buffer.
            pdfw.Flush()
            'Cerramos el documento.
            oDoc.Close()
        Catch ex As Exception
            'Si hubo una excepcion y el archivo existe …
            If File.Exists(NombreArchivo) Then
                'Cerramos el documento si esta abierto.
                'Y asi desbloqueamos el archivo para su eliminacion.
                If oDoc.IsOpen Then oDoc.Close()
                '… lo eliminamos de disco.
                File.Delete(NombreArchivo)
            End If
            Throw New Exception("Error al generar archivo PDF (" & ex.Message & ")")
        Finally
            pdfw = Nothing
            oDoc = Nothing
        End Try
salir:
    End Sub
End Class



domingo, 27 de mayo de 2012



iTextSharp y VB .Net: Texto con formato


pay per click En la primera entrega sobre la librería iTextSharp ya vimos como insertar texto simple, pero claro que esa no es la... thumbnail 1 summary



En la primera entrega sobre la librería iTextSharp ya vimos como insertar texto simple, pero claro que esa no es la única opción para el texto ya que también es posible darle formato.

Tomando el ejemplo itextsharp - texto.rar vamos a modificarlo para ver distintas opciones de formato.

1
Para darle color al texto modificamos el código para que quede de la siguiente forma:

 
Imports iTextSharp.text.pdf
Imports iTextSharp.text
Imports System.IO


Public Class Form1

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim ruta As Integer
        Save.Filter = "Archivos Adobe PDF (*.pdf)|*.pdf"
        'save.FileName = t2.Text
        ruta = Save.ShowDialog
        If ruta = 2 Then GoTo salir

        Try
            Kill(Save.FileName)
        Catch ex As Exception
        End Try

        Dim oDoc As New iTextSharp.text.Document(PageSize.LETTER, 40, 20, 0, 0)
        Dim pdfw As iTextSharp.text.pdf.PdfWriter
        Dim cb As PdfContentByte
        Dim linea As PdfContentByte
        Dim rectangulo As PdfContentByte
        Dim fuente As iTextSharp.text.pdf.BaseFont
        Dim NombreArchivo As String = Save.FileName
        Try
            pdfw = PdfWriter.GetInstance(oDoc, New FileStream(NombreArchivo, _
            FileMode.Create, FileAccess.Write, FileShare.None))

            'Apertura del documento.
            oDoc.Open()
            cb = pdfw.DirectContent
            linea = pdfw.DirectContent
            rectangulo = pdfw.DirectContent

            'Agregamos una pagina.
            oDoc.NewPage()

            'Iniciamos el flujo de bytes.
            cb.BeginText()

            'Instanciamos el objeto para la tipo de letra.
            fuente = FontFactory.GetFont(FontFactory.HELVETICA, iTextSharp.text.Font.DEFAULTSIZE, iTextSharp.text.Font.NORMAL).BaseFont
            cb.SetFontAndSize(fuente, 8)




            'Seteamos el color del texto a escribir.
            cb.SetColorFill(iTextSharp.text.BaseColor.BLACK)
            cb.ShowTextAligned(PdfContentByte.ALIGN_CENTER, "TEXTO de prueba (centro)", 315, 730, 0)

            'Seteamos el color del texto en azul.
            cb.SetColorFill(iTextSharp.text.BaseColor.BLUE)
            cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, "TEXTO de prueba (izquierda)", 315, 700, 0)

            'Seteamos el color del texto con formato CMYK.
            cb.SetColorFill(New CMYKColor(0.631F, 0.439F, 0.0F, 0.161F))
            cb.ShowTextAligned(PdfContentByte.ALIGN_RIGHT, "TEXTO de prueba (derecha)", 315, 670, 0)




            'Fin del flujo de bytes.
            cb.EndText()
            'Forzamos vaciamiento del buffer.
            pdfw.Flush()
            'Cerramos el documento.
            oDoc.Close()
        Catch ex As Exception
            'Si hubo una excepcion y el archivo existe …
            If File.Exists(NombreArchivo) Then
                'Cerramos el documento si esta abierto.
                'Y asi desbloqueamos el archivo para su eliminacion.
                If oDoc.IsOpen Then oDoc.Close()
                '… lo eliminamos de disco.
                File.Delete(NombreArchivo)
            End If
            Throw New Exception("Error al generar archivo PDF (" & ex.Message & ")")
        Finally
            cb = Nothing
            pdfw = Nothing
            oDoc = Nothing
        End Try
salir:
    End Sub
End Class


Con esta modificación obtenemos lo siguiente:




Podemos poner el nombre del color:
 
cb.SetColorFill(iTextSharp.text.BaseColor.BLUE)

También podemos personalizar con formato de color CMYK
 
cb.SetColorFill(New CMYKColor(0.631F, 0.439F, 0.0F, 0.161F))

Descarga del ejemplo aquí: itextsharp - texto con formato 1.rar



2
Por supuesto que el color no es lo único que interesa en el formato del texto, también se tienen opciones como cursiva y negrita, esto con la siguiente modificación en el código de nuestro ejemplo:


 
Imports iTextSharp.text.pdf
Imports iTextSharp.text
Imports System.IO


Public Class Form1

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim ruta As Integer
        Save.Filter = "Archivos Adobe PDF (*.pdf)|*.pdf"
        'save.FileName = t2.Text
        ruta = Save.ShowDialog
        If ruta = 2 Then GoTo salir

        Try
            Kill(Save.FileName)
        Catch ex As Exception
        End Try

        Dim oDoc As New iTextSharp.text.Document(PageSize.LETTER, 40, 20, 0, 0)
        Dim pdfw As iTextSharp.text.pdf.PdfWriter
        Dim cb As PdfContentByte
        Dim linea As PdfContentByte
        Dim rectangulo As PdfContentByte
        Dim fuente1 As iTextSharp.text.pdf.BaseFont
        Dim fuente2 As iTextSharp.text.pdf.BaseFont
        Dim fuente3 As iTextSharp.text.pdf.BaseFont
        Dim NombreArchivo As String = Save.FileName
        Try
            pdfw = PdfWriter.GetInstance(oDoc, New FileStream(NombreArchivo, _
            FileMode.Create, FileAccess.Write, FileShare.None))

            'Apertura del documento.
            oDoc.Open()
            cb = pdfw.DirectContent
            linea = pdfw.DirectContent
            rectangulo = pdfw.DirectContent

            'Agregamos una pagina.
            oDoc.NewPage()

            'Iniciamos el flujo de bytes.
            cb.BeginText()




            fuente1 = FontFactory.GetFont(FontFactory.HELVETICA, iTextSharp.text.Font.DEFAULTSIZE, iTextSharp.text.Font.NORMAL).BaseFont 'fuente negrita
            cb.SetFontAndSize(fuente1, 8) 'llamada a la fuente y tamaño
            'Seteamos el color del texto a escribir.
            cb.SetColorFill(iTextSharp.text.BaseColor.BLACK)
            cb.ShowTextAligned(PdfContentByte.ALIGN_CENTER, "TEXTO de prueba (centro)", 315, 730, 0)

            fuente2 = FontFactory.GetFont(FontFactory.HELVETICA, iTextSharp.text.Font.DEFAULTSIZE, iTextSharp.text.Font.BOLD).BaseFont 'fuente cursiva
            cb.SetFontAndSize(fuente2, 8) 'llamada a la fuente y tamaño
            'Seteamos el color del texto en azul.
            cb.SetColorFill(iTextSharp.text.BaseColor.BLUE)
            cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, "TEXTO de prueba (izquierda)", 315, 700, 0)

            fuente3 = FontFactory.GetFont(FontFactory.HELVETICA, iTextSharp.text.Font.DEFAULTSIZE, iTextSharp.text.Font.ITALIC).BaseFont 'fuente subrayada
            cb.SetFontAndSize(fuente3, 8) 'llamada a la fuente y tamaño
            'Seteamos el color del texto con formato CMYK.
            cb.SetColorFill(New CMYKColor(0.631F, 0.439F, 0.0F, 0.161F))
            cb.ShowTextAligned(PdfContentByte.ALIGN_RIGHT, "TEXTO de prueba (derecha)", 315, 670, 0)




            'Fin del flujo de bytes.
            cb.EndText()
            'Forzamos vaciamiento del buffer.
            pdfw.Flush()
            'Cerramos el documento.
            oDoc.Close()
        Catch ex As Exception
            'Si hubo una excepcion y el archivo existe …
            If File.Exists(NombreArchivo) Then
                'Cerramos el documento si esta abierto.
                'Y asi desbloqueamos el archivo para su eliminacion.
                If oDoc.IsOpen Then oDoc.Close()
                '… lo eliminamos de disco.
                File.Delete(NombreArchivo)
            End If
            Throw New Exception("Error al generar archivo PDF (" & ex.Message & ")")
        Finally
            cb = Nothing
            pdfw = Nothing
            oDoc = Nothing
        End Try
salir:
    End Sub
End Class


Con esta modificación obtenemos lo siguiente:

Descarga del ejemplo aquí: itextsharp - texto con formato 2.rar



3
También hay una opción para hacer rotar el texto con la siguiente modificación del código:

 
Imports iTextSharp.text.pdf
Imports iTextSharp.text
Imports System.IO


Public Class Form1

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim ruta As Integer
        Save.Filter = "Archivos Adobe PDF (*.pdf)|*.pdf"
        'save.FileName = t2.Text
        ruta = Save.ShowDialog
        If ruta = 2 Then GoTo salir

        Try
            Kill(Save.FileName)
        Catch ex As Exception
        End Try

        Dim oDoc As New iTextSharp.text.Document(PageSize.LETTER, 40, 20, 0, 0)
        Dim pdfw As iTextSharp.text.pdf.PdfWriter
        Dim cb As PdfContentByte
        Dim linea As PdfContentByte
        Dim rectangulo As PdfContentByte
        Dim fuente1 As iTextSharp.text.pdf.BaseFont
        Dim fuente2 As iTextSharp.text.pdf.BaseFont
        Dim fuente3 As iTextSharp.text.pdf.BaseFont
        Dim NombreArchivo As String = Save.FileName
        Try
            pdfw = PdfWriter.GetInstance(oDoc, New FileStream(NombreArchivo, _
            FileMode.Create, FileAccess.Write, FileShare.None))

            'Apertura del documento.
            oDoc.Open()
            cb = pdfw.DirectContent
            linea = pdfw.DirectContent
            rectangulo = pdfw.DirectContent

            'Agregamos una pagina.
            oDoc.NewPage()

            'Iniciamos el flujo de bytes.
            cb.BeginText()




            fuente1 = FontFactory.GetFont(FontFactory.HELVETICA, iTextSharp.text.Font.DEFAULTSIZE, iTextSharp.text.Font.NORMAL).BaseFont 'fuente negrita
            cb.SetFontAndSize(fuente1, 8) 'llamada a la fuente y tamaño
            'Seteamos el color del texto a escribir.
            cb.SetColorFill(iTextSharp.text.BaseColor.BLACK)
            cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, "TEXTO de prueba (izquierda)", 315, 670, 90) 'giro de 90 grados

            fuente2 = FontFactory.GetFont(FontFactory.HELVETICA, iTextSharp.text.Font.DEFAULTSIZE, iTextSharp.text.Font.BOLD).BaseFont 'fuente cursiva
            cb.SetFontAndSize(fuente2, 8) 'llamada a la fuente y tamaño
            'Seteamos el color del texto en azul.
            cb.SetColorFill(iTextSharp.text.BaseColor.BLUE)
            cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, "TEXTO de prueba (izquierda)", 315, 640, 60) 'giro de 60 grados

            fuente3 = FontFactory.GetFont(FontFactory.HELVETICA, iTextSharp.text.Font.DEFAULTSIZE, iTextSharp.text.Font.ITALIC).BaseFont 'fuente subrayada
            cb.SetFontAndSize(fuente3, 8) 'llamada a la fuente y tamaño
            'Seteamos el color del texto con formato CMYK.
            cb.SetColorFill(New CMYKColor(0.631F, 0.439F, 0.0F, 0.161F))
            cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, "TEXTO de prueba (izquierda)", 315, 610, 30) 'giro de 30 grados




            'Fin del flujo de bytes.
            cb.EndText()
            'Forzamos vaciamiento del buffer.
            pdfw.Flush()
            'Cerramos el documento.
            oDoc.Close()
        Catch ex As Exception
            'Si hubo una excepcion y el archivo existe …
            If File.Exists(NombreArchivo) Then
                'Cerramos el documento si esta abierto.
                'Y asi desbloqueamos el archivo para su eliminacion.
                If oDoc.IsOpen Then oDoc.Close()
                '… lo eliminamos de disco.
                File.Delete(NombreArchivo)
            End If
            Throw New Exception("Error al generar archivo PDF (" & ex.Message & ")")
        Finally
            cb = Nothing
            pdfw = Nothing
            oDoc = Nothing
        End Try
salir:
    End Sub
End Class


Con esta modificación obtenemos lo siguiente:

Descarga del ejemplo aquí: itextsharp - texto con formato 3.rar


Existen otras opciones de formato que pueden explorar.