[Métodos] Generar codigos de barras y codigos QR - Codigo de barras en un PDF con Barcode4j


Siguiendo el comportamiento de blog pasados, esta vez el desafio es hacer la generación de codigo en pdf, partiendo de las mismas clases pasadas, modificando un poco el main, pero tomando el objeto file de la imagen para pasarlo a un pdf.
  • Agregar dependencia de itext (para generar el pdf)
  • Crear una clase para generar un pdf con una imagen.
  • modificar el 'main' para que en lugar de la ventana llame al método creado.


inlcuir itext al pom

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>CodigoBarras</groupId>
    <artifactId>CodigoBarras</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>net.sf.barcode4j</groupId>
            <artifactId>barcode4j</artifactId>
            <version>2.1</version>
        </dependency>
        <dependency>
            <groupId>com.lowagie</groupId>
            <artifactId>itext</artifactId>
            <version>2.1.7</version>
        </dependency>
    </dependencies>
    <build>
        <sourceDirectory>src</sourceDirectory>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

Creando el pdfGenerador.java

esto guardará en el escritorio el resultado
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package com.dar10comyr.blogspot.main.barco;

import java.io.FileOutputStream;
import java.io.IOException;

import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Image;
import com.lowagie.text.pdf.PdfWriter;

public class pdfGenerador {

    public static void generarPDF(String pathImagen){
        Document documento = new Document();
        String escritorio = System.getProperty("user.home") + "/Desktop/miPDF.pdf";
        FileOutputStream fos;
        Image imagen;
        try {
            fos = new FileOutputStream(escritorio);

            PdfWriter pdfW = PdfWriter.getInstance(documento, fos);
            pdfW.setInitialLeading(20);

            documento.open();
            imagen = Image.getInstance(pathImagen);
            documento.add(imagen);

            documento.close();
        } catch (IOException | DocumentException e) {
            e.printStackTrace();
        }
    }
}

modificando el main...

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
package com.dar10comyr.blogspot.main.barco;

import java.io.File;

public class Main {
    public static void main(String[] args){
        MiBarco bar = new MiBarco();
        File imagen = bar.getBarcode("34198987");
        pdfGenerador.generarPDF(imagen.getAbsolutePath());
    }
}

y voila!

No hay comentarios:

Publicar un comentario