Artículos
Groovy

Crear un PDF con iText y Groovy

Creado: 31/Ene/2013 Actualizado: 26/Dic/2024

En este ejemplo vamos a ver cómo podemos crear un documento PDF mediante la librería iText y el lenguaje Groovy. Es un código que ya vimos por encima en la carga dinámica de librerías con el uso de @Grapes en Groovy.

Así que podemos cargar dinámicamente nuestra librería iText mediante el uso de los @Grapes así no hace falta tenerla en el Classpath.

import groovy.grape.Grape

@GrabResolver(name='itextpdf', root='http://maven.itextpdf.com/')
@Grapes(@Grab(group='com.itextpdf', module='itextpdf', version='5.1.2'))

Ahora importamos las librerías necesarias para la creación del documento PDF en Groovy con iText.

import com.itextpdf.text.Document
import com.itextpdf.text.DocumentException
import com.itextpdf.text.Paragraph
import com.itextpdf.text.pdf.PdfWriter

Lo primero será crear el documento, para ello utilizamos la clase Document de iText

def documento="micodigo.pdf"
Document document = new Document();

Y obtener un PDFWriter que apunte a dicho documento.

PdfWriter.getInstance(document, new FileOutputStream(documento));

Una vez hecho esto, abrimos el documento y empezamos a escribir contenido sobre el documento PDF. Para ello utilizamos el método .add, el cual recibe como parámetro el texto que queremos insertar en el PDF.

document.open();
document.add(new Paragraph("Usando Grapes en Groovy"));
document.add(new Paragraph("https://lineadecodigo.com"));

Ya solo nos quedará realizar el cierre con el método .close()

document.close()

Vemos que de una forma muy sencilla, mediante la librería iText y Groovy podemos generar un fichero PDF.

Artículos
SQL

Contar elementos distintos con SQL

Creado: 30/Ene/2013 Actualizado: 03/Mar/2025

Ya hemos aprendido a contar los elementos de una consulta con SQL. Ahora vamos a ver cómo contar elementos distintos con SQL. Pero, ¿qué significa elementos distintos? La búsqueda de elementos distintos nos permite calcular cuantos elementos de una tipología existen en una tabla.

Ejemplo para contar elementos distintos con SQL.

Pero la mejor forma de ver cómo podemos calcular los elementos distintos con SQL es mediante un ejemplo. Es por ello que vamos a volver a nuestra tabla de libros que tiene la siguiente estructura:

Estructura de la tabla libros para poder contar elementos distintos con SQL.

Dada nuestra tabla de libros, podemos realizar una consulta SQL, para contar elementos de la siguiente forma:

SELECT count(*) FROM libros

Esta consulta SQL nos devolverá todas las entradas que tenga la tabla libros. Es decir, todos los libros de todos los autores. De esta forma, ante una tabla que tengamos los siguientes elementos dentro de ella.

ISBNTituloAutor
978-1-4493-0814-8What Is HTML5?Brett McLaughlin
970-26-0518-0Cómo Programar en JavaPaul Deitel
978-84-415-2348-7Java SE 6F. Javier Moldes
978-1-4493-1439-2What’s New in Java 7?Madhusudhan Konda
978-1-4493-1608-2Just SpringMadhusudhan Konda
978-1-4493-2838-2Just Spring Data AccessMadhusudhan Konda

Obtendremos que hay 6 libros al utilizar la sentencia count.

Contar elementos distintos en SQL sería para cubrir consultas del estilo… «Contar todas las editoriales distintas de las que tenemos libros» o «Contar todos los autores distintos de los que tenemos libros».

Count y distinct para elementos distintos.

Para ello deberemos de aplicar la función count de SQL sobre los campos editorial o autor, pero con una salvedad y es que utilizaremos el modificador distinct. Mediante esta sentencia distinct estaremos contando aquellos elementos que sean distintos.

La sentencia SQL tendrá la siguiente sintaxis:

SELECT count(distinct campo) FROM tabla

Así, para sacar los autores distintos, ejecutaremos la siguiente sentencia SQL:

SELECT count(distinct autor) FROM libros

Siendo el resultado igual a 4 ya que solo hay libros de 4 autores diferentes.

De esta manera ya sabemos cómo podemos contar elementos distintos con SQL mediante la sentencia count y el modificador distinct.

Código Fuente

Descárgate el código fuente de Contar elementos distintos con SQL
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star
Contar elementos distintos con SQL

Ejecuta el Código

Groovy

Uso de @Grapes en Groovy

Creado: 29/Ene/2013 Actualizado: 25/Ago/2021

Supongamos que tenemos la necesidad de conectar una aplicación a una base de datos, crear un documento PDF,etc. , pero no tenemos las librerías necesarias para ello entonces la solución sería usar Grapes.

¿Qué es Grapes?
Se trata de un gestor de dependencias que nos permite usar librerías sin la necesidad de agregarlas a nuestro CLASSPATH.

Ejemplo. Crear un documento PDF mediante la librería itext (itextpdf) usando Grapes.

Para usar esta herramienta es necesario importar lo siguiente:

import groovy.grape.Grape

Se deben cumplir estas convenciones:

  • group: grupo de módulos a usar, la libreía o librerías a usar
  • module: un módulo en específico de la librería
  • version: la versión a usar

Entonces quedaría así:

@Grapes(@Grab(group='com.itextpdf', module='itextpdf', version='5.1.2'))

Defino que librería se va usar, el módulo y la versión.

Por lo tando también debemos importar las librerías necesarias para crear el documento PDF:

//para crear el archivo
import java.io.FileOutputStream
import java.io.IOException

//librería itextpdf para crear el documento PDF
import com.itextpdf.text.Document
import com.itextpdf.text.DocumentException
import com.itextpdf.text.Paragraph
import com.itextpdf.text.pdf.PdfWriter

Ahora creamos una función «principal» del programa y le agregamos la anotación @Grapes y @Grab:

@Grapes(@Grab(group='com.itextpdf', module='itextpdf', version='5.1.2'))
def principal() throws DocumentException, IOException {
  //nombre del documento
  def documento="micodigo.pdf"
  Document document = new Document();
  PdfWriter.getInstance(document, new FileOutputStream(documento));
  document.open();
  //el contenido del PDF
  document.add(new Paragraph("Usando Grapes en Groovy"));
  document.add(new Paragraph("www.lineadecodigo.com"));
  document.close();
  println "Se ha creado el documento PDF"
}

Ahora solo falta invocar esa función:

//método principal del programa
principal()

Compilamos:
groovyc UsoGrapes.groovy

Listamos las dependencias:
grape list

Y finalmente ejecutamos el programa:
groovy UsoGrapes.groovy

Si todo salio bien obtendremos un documento PDF.

Artículos
SQL

Contar el número de registros en SQL

Creado: 28/Ene/2013 Actualizado: 08/Dic/2023

En algún artículo hemos visto cómo podemos consultar mediante el API de programación el número de registros devueltos por una consulta a una base de datos. En este caso vamos a ver cómo podemos contar el número de registros en SQL. Para ello vamos a partir de nuestra famosa tabla Libros.

La tabla de libros contiene 5 columnas con diferentes atributos sobre un libro, en los que encontramos el título del libro, su ISBN, el autor del libro, la editorial en la cual se publicó el libro y por último la fecha de publicación.

De esta manera tendríamos una tabla del siguiente estilo:

Libros
ISBN
Título
Autor
Editorial
Fecha Publicación

Contar el número de registros utiliza la función count dentro de una sentencia SQL. La función count() recibe como parámetro la columna sobre la que queremos contar.

SELECT count(campo) FROM tabla

Por lo tanto si queremos saber cuántos libros tenemos en la tabla bastará pasar el campo título a la función count().

SELECT count(titulo) FROM libros

Pero, por otro lado, si lo que queremos contar es el número de libros de un autor, deberemos de pasar el campo autor a la función count() además de realizar un filtro mediante la cláusula WHERE para indicar el autor en cuestión sobre el que se realiza la cuenta.

En este caso la sentencia SQL quedaría de la siguiente forma:

SELECT count(autor) FROM libros WHERE autor="Cervantes"

También puede darse el caso de que no queramos indicar la columna para contar los registros. En este caso podemos utilizar el comodín * como parámetro de la función count()

SELECT count(*) FROM libros

Si bien es verdad que siempre es mejor indicar el nombre de una de las columnas para poder realizar la consulta.

De esta manera ya hemos visto que mediante la sencilla función count() podemos contar el número de registros de una tabla en SQL.

Código Fuente

Descárgate el código fuente de Contar el número de registros en SQL
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star
Contar el número de registros en SQL
Artículos
Java

Crear un método en Java

Creado: 27/Ene/2013 Actualizado: 24/Ene/2025

En este artículo vamos a ver cómo podemos crear un método en Java. Un método es una estructura del lenguaje Java que nos sirve para encapsular cierta funcionalidad, la cual podemos llamar desde diferentes sitios y así no tener que repetir el código. Para la creación de un método en Java debemos conocer la estructura del mismo:

tipo_acceso tipo_dinamico_o_no tipo_dato nombre_metodo(tipo_parametro parametro)

Tipos de acceso a los métodos Java

Un método generalmente usa toda esa estructura, solo exceptuando la declaración de si es dinámico o estático. La primera parte de creación de un método se refiere al tipo de acceso que puede ser:

  • protected, acceso protegido de datos
  • private, acceso solo de modo interno de la clase
  • public, acceso desde una instancia externa de la clase

Métodos estáticos en Java

La segunda parte se refiere al uso del método Java, si es estático, lo cual significa que el método sería accesible desde fuera de la clase sin necesidad de instanciar la clase.

  • static, el acceso al método es estático.

El tipo de dato es dependiente de lo que se desea como resultado del método, como puede ser, por ejemplo, void si nuestro método no tiene salida alguna, o un tipo de dato específico como puede ser double o int si es una salida de tipo numérico.

Notación para un método Java

Para poder crear un método en Java tenemos que tener en cuenta su notación. El nombre del método de preferencia debe ser escrito en notación camelCase.

La notación camelcase detalla que se debe usar en los métodos con nombres compuestos siempre la primera letra de cada palabra en mayúscula.

Para crear un método en Java, no en todos los casos son necesarios argumentos, pero si deseamos usar algún argumento, cada argumento deberá tener su tipo de dato y nombre de argumento.

public void miMetodo(int argumento1){
  //funcionamiento debe ser escrito aqui....
  return;
}

Ejemplo para crear un método en Java

Bueno, ahora solo nos queda ver un ejemplo de cómo crear el método con Java. Para ello vamos a definir un método que nos sume dos números con Java. De esta forma, cada vez que queramos sumar dos números, nos bastará con llamar a este método.

public static int sumarNumeros (int numero1, int numero2) {
  return numero1 + numero2;
}

En este método podemos ver que el tipo de acceso es público. Cabe detallar que este tipo de método también es de acceso estático; por tanto, no necesitamos instanciar un objeto de la clase a la cual pertenece este método. También tomando en cuenta el tipo de dato a devolver del método, se puede decir que trabaja con entradas de tipo entero, tanto como salidas de tipo entero, tal como detalla su signatura.

Para poder ver cómo este ejemplo funcionaría en código, lo probamos:

System.out.println("Programa de Suma de números iniciando");
//iniciamos sumando
int sumando1=4234;
System.out.println("Sumando 1: "+sumando1);
//iniciamos sumando 2
int sumando2=64782;
System.out.println("Sumando 2: "+sumando1);
// obtenemos el resultado de la suma de los dos sumandos
int resultado= sumarNumeros(sumando1, sumando2);
System.out.println("Resultado: "+resultado);
//fin de ejecucion
System.out.println("Programa de Suma de números finalizando");

Hasta aquí el ejemplo para aprender a crear un método en Java.

Código Fuente

Descárgate el código fuente de Crear un método en Java
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star
Crear un método en Java

Ejecuta el Código

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
Artículos
SQL

Consulta SQL con filtro de datos

Creado: 26/Ene/2013 Actualizado: 09/Oct/2021

Cuando estemos realizando una consulta SQL lo más probable es que no queramos recuperar todos los datos de la tabla a la cual consultamos. Para ello podemos realizar un filtro de datos.

Los filtros de datos en SQL se tienen que realizar por alguno de los campos de la tabla. De esta manera si tenemos la tabla

Libros
ISBN
Titulo
Autor
Editorial
Fecha Publicación

Podríamos filtrar por el ISBN, por el Título, por el Autor,….

Para realizar la consulta SQL con el filtro de datos tendremos la siguiente estructura:

SELECT campos FROM tabla WHERE filtro

El filtro SQL tendrá una comparación entre un campo y un valor. Por ejemplo podríamos tener:

  • Si un campo es igual que otro. campo = valor
  • Si un campo es mayor o menos que otro. campo > valor o campo < valor

De esta forma podríamos obtener todos los libros de Cervantes de la siguiente forma:

SELECT isbn,titulo FROM libros WHERE autor='Cervantes'

De igual manera podemos concatenar los filtros utilizando operadores como AND (para que cumpla varias condiciones) u OR (para que cumpla una u otra condición).

De esta forma podemos realizar un filtro de datos dónde saquemos libros de «Cervantes» o de «Quevedo» de la siguiente forma.

SELECT isbn,titulo FROM libros WHERE autor='Cervantes' OR autor='Quevedo'
Artículos
Java

Convertir un mes en texto con Java

Creado: 25/Ene/2013 Actualizado: 29/Dic/2014

Para convertir un mes en texto con Java necesitamos una fecha en formato adecuado por tanto usaremos la implementacion de Java llamada Date.

public static String dateMonth(Date date){
  //Aquí en código
}

Luego debemos proceder a extraer el mes en formato numerico, usando Calendar una clase que permite manejo de fechas. Pero para esto no debemos olvidar que Calendar extrae el mes en formato numerico pero en base a iniciar el conteo de meses desde 0. Por tanto el mes 0 seria enero, el 1 febrero y asi sucesivamente…

Calendar calendar=Calendar.getInstance();
calendar.setTime(date);
int month=0;

try{
  month=calendar.get(Calendar.MONTH);
} catch(Exception ex){}

Y seguidamente procedemos a hacer la conversion por medio el uso de switch.

switch(month){
  case 0:
    {
      result="Enero";
      break;
    }
  case 1:
    {
      result="Febrero";
      break;
    }
  case 2:
    {
      result="Marzo";
      break;
    }
  case 3:
    {
      result="Abril";
      break;
    }
  case 4:
    {
      result="Mayo";
      break;
    }
  case 5:
    {
      result="Junio";
      break;
    }
  case 6:
    {
      result="Julio";
      break;
    }
  case 7:
    {
      result="Agosto";
      break;
    }
  case 8:
    {
      result="Septiembre";
      break;
    }
  case 9:
    {
      result="Octubre";
      break;
    }
  case 10:
    {
      result="Noviembre";
      break;
    }
  case 11:
    {
      result="Diciembre";
      break;
    }
  default:
    {
      result="Error";
      break;
    }
}

Quedando de esta forma nuestra funcion de la forma siguiente:

public static String dateMonth(Date date){
 String result="";
 Calendar calendar=Calendar.getInstance();
 calendar.setTime(date);
 int month=0;
 
 try{
   month=calendar.get(Calendar.MONTH);
 }catch(Exception ex){}
 switch(month){
  case 0:
    {
      result="Enero";
      break;
    }
  case 1:
    {
      result="Febrero";
      break;
    }
  case 2:
    {
      result="Marzo";
      break;
    }
  case 3:
    {
      result="Abril";
      break;
    }
  case 4:
    {
      result="Mayo";
      break;
    }
  case 5:
    {
      result="Junio";
      break;
    }
  case 6:
    {
      result="Julio";
      break;
    }
  case 7:
    {
      result="Agosto";
      break;
    }
  case 8:
    {
      result="Septiembre";
      break;
    }
  case 9:
    {
      result="Octubre";
      break;
    }
  case 10:
    {
      result="Noviembre";
      break;
    }
  case 11:
    {
      result="Diciembre";
      break;
    }
  default:
    {
      result="Error";
      break;
    }
 }
 return result;
}

Bueno ahora solo nos queda ver como funciona en codigo el convertir un mes en texto con Java:

Calendar calendar=Calendar.getInstance();
Date now=calendar.getTime();
System.out.println(dateMonth(now));

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
Artículos
SQL

Consulta seleccionando los campos en SQL

Creado: 24/Ene/2013 Actualizado: 09/Oct/2021

El otro día ya vimos como realizar una consulta sobre una base de datos en SQL. Hoy vamos a ver como podemos seleccionar parte de las columnas a mostrar, es decir, que no queremos que la consulta muestre todos los campos.

Para ello partimos de nuestra tabla sobre libros…

Libros
ISBN
Titulo
Autor
Editorial
Fecha Publicación

Así la estructura de la consulta SELECT será la siguiente:

SELECT campo1,campo2,...,campoN FROM tabla

Vemos que separamos los campos que queremos seleccionar en la sentencia SELECT de SQL. De esta forma si queremos obtener la información relativa al título, autor e ISBN de un libro realizaremos la siguiente consulta:

SELECT ISBN,Titulo,Autor FROM Libros

Es importante saber que la información aparecerá ordenada según hayamos escrito la consulta. Es decir que no es lo mismo escribir:

SELECT Titulo,Autor,ISBN FROM Libros

que

SELECT ISBN,Autor,Titulo FROM Libros

Vemos que es muy sencillo ejecutar una consulta SQL que seleccione los campos a mostrar.

Artículos
PHP

Alto y ancho de una imagen en PHP

Creado: 23/Ene/2013 Actualizado: 25/Ago/2021

En este ejemplo veremos cómo obtener de manera sencilla información sobre una imagen en PHP, específicamente su ancho y su alto de manera que podamos manipular nuestra imagen de manera sencilla en nuestra aplicación. Así que pongámonos manos a la obra para poder calcular el alto y ancho de una imagen en PHP.

PHP nos recomienda el método getimagesize() la cual determinará el tamaño de un archivo de imagen dado y devolverá las dimensiones junto con el tipo de archivo y una cadena de texto con el alto/ancho para ser usada dentro una etiqueta IMG de HTML normal y el tipo de contenido HTTP correspondiente.

getimagesize() también puede devolver alguna información más con el parámetro imageinfo. A continuación veremos como obtener información sobre la imagen:

<?php 

 $file = "logo.png";  // Dirección de la imagen

 $imagen = getimagesize($file);    //Sacamos la información
 $ancho = $imagen[0];              //Ancho
 $alto = $imagen[1];               //Alto

 echo "Ancho: $ancho";
 echo "Alto: $alto";

?>

El retorno de la función getimagesize() es un array, el cual dependiendo de la posición, contiene una información u otra. Así en la posición 0 tenemos el ancho y en la posición 1 tenemos el alto.

Sin embargo también podemos obtener más información de la imagen como por ejemplo su tipo: JPG, PNG,…:

list($width, $height, $type, $attr) = getimagesize("imagen.jpg");

echo "Ancho de imagen: " .$width;
echo '';
echo "Alto de imagen: " .$height;
echo '';
echo "Tipo de imagen: " .$type;
echo '';
echo "Atributos: " .$attr;

Los tipos de imagen que podemos encontrar en $type son:

1 = GIF 5 = PSD 9 = JPC 13 = SWC
2 = JPG 6 = BMP 10 = JP2 14 = IFF
3 = PNG 7 = TIFF 11 = JPX 15 = WBMP
4 = SWF 8 = TIFF 12 = JB2 16 = XBM

Además la documentación de PHP nos da mas referencias acerca del procesamiento de imágenes, algunas funciones que nos ofrece son:

Para consultar mas métodos puedes visitar la documentación de procesamiento de imágenes en PHP en http://php.net/manual/es/book.image.php

Esperemos que os haya servido de utilidad este ejemplo para saber como poder calcular el alto y ancho de una imagen en PHP.

Código Fuente

Descárgate el código fuente de Alto y ancho de una imagen en PHP
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star
Artículos
PHP

Consulta a una base de datos MySQL con PHP

Creado: 22/Ene/2013 Actualizado: 25/Ago/2021

Ya hemos visto lo sencillo que resulta conectarnos a una base de datos MySQL utilizando PHP. Ahora vamos a aprovechar dicha conexión para realizar una sencilla consulta a una base de datos.

Lo primero que hará nuestro programa será conectarse a MySQL. Para ello utilizamos el objeto mysqli del lenguaje PHP.

@ $db = new mysqli(localhost, "root", "", "biblioteca");

Una vez realizada la conexión comprobaremos que esta se ha realizado correctamente. Para ello chequeamos el valor de connect_error para saber si se ha producido algún error:

if ($db->connect_error)
  die('Error de Conexion ('.$db->connect_errno.')'.$db->connect_error);

Lo siguiente será preparar la consulta sobre la base de datos. En este caso vamos a tener una tabla que contenga libros con la siguiente estructura:

Libros
ISBN
Titulo
Autor
Editorial
Fecha Publicación

La consulta que ejecutaremos será la siguiente:

$query = "SELECT * FROM libros";

Para ejecutar la sentencia utilizamos el método query(), el cual recibe la query que hemos definido como parámetro.

$result = $db->query($query);

En la variable $result nos queda el resultado de elementos como respuesta a la query ejecutada. Es por ello que tendremos que ir recorriendolo para mostrar todo el contenido.

Para recorrer el resultado lo primero que tenemos que hacer es saber cuántos registros ha devuelto. Para ello utilizamos la propiedad num_rows.

$numfilas = $result->num_rows;
echo "El número de elementos es ".$numfilas;

Ahora establecemos un bucle for con el número de elementos que tenga el resultado, en el cual, por cada fila ejecutamos el método fetch_object para obtener un objeto que represente la tupla de la base de datos.

for ($x=0;$x<$numfilas;$x++) {
	$fila = $result->fetch_object();
	echo "";
	echo "".$fila->ISBN."";
	echo "".$fila->Titulo."";
	echo "".$fila->Fecha."";
	echo "";
}

De esta forma vemos que para acceder a los nombres de las columnas utilizamos el modificador -> con la estructura:

$fila->nombre_campo;

Este atributo contiene el contenido del campo y la fila en la que estemos.

En el código hemos montado los resultado en una tabla. Por lo cual necesitamos algo de código HTML antes de nuestro código PHP.

fetch_object();
	echo "";
	echo "";
	echo "";
	echo "";
	echo "";
}
?>
ISBN Título Fecha
".$fila->ISBN."".$fila->Titulo."".$fila->Fecha."

Ya solo nos queda liberar el resultset y la conexión a la base de datos con los métodos free() y close() respectivamente.

$result->free();
$db->close();

Con este código podremos realizar consultas a nuestra base de datos MySQL en PHP.

Código Fuente

Descárgate el código fuente de Consulta a una base de datos MySQL con PHP
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star