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.
En el ejercicio de programación de hoy vamos a trabajar con ANSI C para leer…
Hoy te quiero compartir una herramienta en línea para generar números aleatorios directamente en el…
Comprimir un PDF con Telegram es posible gracias a los Bots. Anteriormente en mi blog…
En este post te voy a enseñar a guardar solo algunos días de la semana…
En este post te enseñaré a usar tu impresora térmica comenzando en el paso de…
Hoy voy a tratar de solucionar el error ERR_SSL_CIPHER_OPERATION_FAILED que aparece al usar npm install…
Esta web usa cookies.