Ir al contenido

Incrustar imágenes con NextPDF Connect

Incrustar una imagen en un PDF con NextPDF Connect. El origen puede ser una ruta de archivo legible por el servidor o un data URI base64 en línea. Las herramientas son create_pdf, add_image y output_pdf, todas Core. Una imagen se dibuja como un XObject de imagen, pintado por el operador Do (ISO 32000-2 §8.9).

Ventana de terminal
composer require nextpdf/server

Configurar un transporte. Los formatos ráster admitidos son PNG, JPEG y GIF.

add_image recibe un source y lo resuelve en un orden fijo:

  1. Data URI — una cadena que empieza por data:. NextPDF identifica el tipo MIME, decodifica la carga base64 en un archivo temporal, la incrusta y luego elimina el archivo temporal.
  2. Base64 sin procesar — una cadena base64 larga se decodifica y se trata como PNG.
  3. Ruta de archivo — cualquier otro valor se trata como una ruta del sistema de archivos que el proceso del servidor debe poder leer.

La imagen se coloca en x/y, en unidades de usuario (milímetros de forma predeterminada). Si se pasa solo width, la altura se calcula para conservar la relación de aspecto. Si se pasan tanto width como height, la imagen se escala a esas dimensiones exactas. El objeto incrustado es un objeto externo pintado en el contenido de la página (ISO 32000-2 §8.8).

HerramientaFunciónNivel de riesgo
create_pdfAbrir una sesiónSeguro
add_imageIncrustar una imagen desde una ruta o un data URIPrecaución
output_pdfGenerar y devolver el PDFAprobación requerida / Revisión (base64)

El catálogo de herramientas es la referencia principal. Las herramientas disponibles dependen del nivel instalado.

  1. create_pdf (A4 vertical, título) → document_id.
  2. add_image con source definido como una ruta absoluta, x, y, width.
  3. add_image con source definido como un URI data:image/png;base64,... y width y height explícitos.
  4. output_pdf → base64.

Usar un data URI para una imagen que el host generó en memoria, como la representación de un gráfico o una captura de pantalla. Usar una ruta de archivo para un recurso que ya esté en el servidor. Usar siempre rutas absolutas. Una ruta relativa se resuelve respecto al directorio de trabajo del servidor, que normalmente no es el del host. Antes de continuar, confirmar que la respuesta de add_image indica la imagen en la página esperada.

  • Ruta no encontrada. Una ruta de archivo inexistente devuelve un error de imagen no encontrada.
  • Formato no admitido. Se rechazan SVG, BMP y WebP. Convierta la imagen primero.
  • Base64 / data URI con formato incorrecto. Una carga mal formada, o un data URI sin separador de coma, devuelve un error de decodificación.
  • Imagen sobredimensionada. Una imagen mayor que la página se recorta en el borde, no se rechaza. Calcular width/height respecto a la página menos sus márgenes (A4 vertical mide 210×297 mm).

El tamaño de salida aumenta según el contenido de la imagen. Dos imágenes pequeñas suelen ocupar entre 10 y 50 KB. El presupuesto para incrustar imágenes es más amplio que el de solo texto. El perfil es structural.

El modo de ruta de archivo lee desde el sistema de archivos del servidor con los privilegios del proceso del servidor. Restringir qué rutas puede pasar el host. No permitir que invocadores no confiables apunten source a archivos arbitrarios del servidor. El modo base64 transporta los bytes en línea, por lo que evita exponer rutas del servidor.

DeclaraciónEspecificaciónCláusulareference_id
Una imagen es un XObject de imagen pintado por Do.ISO 32000-2§8.9
Las imágenes son objetos externos pintados en el contenido de la página.ISO 32000-2§8.8

No aplica — todas las herramientas son Core.

TransporteDisponibleNotas
MCP (stdio)Las cargas base64 grandes aumentan el tamaño de la trama stdio.
RESTPreferir multipart o una ruta de servidor para recursos grandes.
gRPCLlamada unaria; los límites de tamaño de mensaje se aplican al base64 en línea.

create_pdf es Seguro, add_image es Precaución y output_pdf es Aprobación requerida — rebajada a Revisión en modo base64. La lectura en modo de ruta se realiza del lado del servidor y no se limita por separado, así que restringirla en la capa de políticas (niveles de riesgo HITL).

Envoltorio JSON de la puerta de confirmación

Sección titulada «Envoltorio JSON de la puerta de confirmación»

Aquí, la salida base64:

{ "allowed": true }