Imagen a PDF con Go

En este tutorial de programación con Golang vamos a ver cómo convertir varias imágenes en un PDF, indicando el tamaño del papel y ajustando la imagen para que tenga el tamaño de la hoja.

Dicho con pocas palabras veremos cómo convertir imágenes a PDF con Go, agregando una imagen por hoja, cubriendo toda la hoja.

Librería PDF

Para unir imágenes en un PDF con Golang vamos a usar la librería gopdf del autor signintech. Se instala con:

go get -u github.com/signintech/gopdf

Y después puede ser importada así:

import "github.com/signintech/gopdf"

Convertir imágenes a PDF

Ahora que tenemos la librería importada solo hay que crear un nuevo documento eligiendo el tamaño del papel, agregando páginas con AddPage y agregando una imagen a la página con Image así:

package main

import (
	_ "image/jpeg"
	_ "image/png"
	"log"

	"github.com/signintech/gopdf"
)

func main() {
	pdf := gopdf.GoPdf{}
	nombreArchivoSalida := "convertido.pdf"
	// Aquí puedes seleccionar el tamaño.
	// Las imágenes serán redimensionadas para cubrir
	// toda la hoja
	tamañoDePagina := gopdf.PageSizeA4
	pdf.Start(gopdf.Config{PageSize: *tamañoDePagina})
	ubicacionesImagenes := []string{"bird.jpg", "zoo.jpg"}
	for _, ubicacionImagen := range ubicacionesImagenes {
		pdf.AddPage()
		// Si tú no quieres cubrir toda la hoja, entonces
		// especifica W como el ancho de la imagen y no de la hoja. Haz
		// lo mismo con el alto H
		err := pdf.Image(ubicacionImagen, 0, 0, &gopdf.Rect{
			W: tamañoDePagina.W,
			H: tamañoDePagina.H,
		})
		if err != nil {
			log.Fatalf("Error añadiendo la imagen %s al PDF: %v", ubicacionImagen, err)
		}
	}
	pdf.WritePdf(nombreArchivoSalida)

}

Las imágenes pueden tener cualquier medida, pero en este caso las estoy redimensionando para que cubran toda la hoja. Tú puedes cambiar el tamaño del papel en la variable tamañoDePagina y las medidas de la imagen al especificar el gopdf.Rect.

Como lo más común es agregar una imagen que cubra toda una hoja, lo he hecho de esta manera; pero bien podrías agregar varias imágenes en una hoja.

Nota: las imágenes están definidas en el arreglo ubicacionesImagenes; pueden ser png o jpg.

Finalmente guardamos el PDF generado con Golang usando la función WritePdf indicando el nombre de salida.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *