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.
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"
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.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.