Skip to content

Image

Renderiza imagens a partir de base64 inline ou URL remota.

JSON (base64)

json
{
  "type": "image",
  "id": "logo",
  "x": 40,
  "y": 10,
  "width": 120,
  "height": 60,
  "base64Source": "iVBORw0KGgoAAAANSUhEUgAA...",
  "fit": "contain"
}

JSON (URL)

json
{
  "type": "image",
  "id": "product_photo",
  "x": 40,
  "y": 10,
  "width": 100,
  "height": 100,
  "imageUrl": "https://example.com/photo.png",
  "borderRadius": 8
}

JSON (binding — URL dinâmica)

Quando a URL da imagem vem do próprio registro de dados, combine binding com o processamento de dados. O DataProcessor resolve o caminho e armazena a URL no campo id do elemento dentro do row context:

json
{
  "type": "image",
  "id": "img_foto",
  "x": 40,
  "y": 10,
  "width": 120,
  "height": 120,
  "binding": "sprites.other.official-artwork.front_default",
  "borderRadius": 60,
  "fit": "cover"
}

O campo binding suporta dot-path com acesso a objetos aninhados e arrays (items[0].photo). O DataProcessor resolve o valor e o PdfRenderer/HtmlRenderer usa a URL resolvida para exibir a imagem.

JSON (binding — base64 dinâmico)

json
{
  "type": "image",
  "id": "dynamic_img",
  "x": 40,
  "y": 10,
  "width": 80,
  "height": 80,
  "binding": "product_image_base64"
}

O binding pode apontar tanto para uma URL HTTP(S) quanto para uma string base64 — o engine detecta o formato automaticamente.

Prioridade de resolução

O engine resolve a imagem na seguinte ordem:

  1. binding → URL ou base64 resolvido do registro
  2. base64Source → base64 estático no JSON
  3. imageUrl → URL estática no JSON
  4. Placeholder cinza com texto img

Propriedades

PropriedadeTipoPadrãoDescrição
widthdoubleLargura em pontos
heightdoubleAltura em pontos
base64Sourcestring""Imagem codificada em base64 (estática)
imageUrlstring""URL estática para download da imagem
bindingstring""Dot-path para URL ou base64 no registro
fitstring"contain""contain", "cover", "fill"
opacitydouble1.0Opacidade (0.0 a 1.0)
borderRadiusdouble0.0Raio das bordas arredondadas
hasBorderboolfalseExibir borda
borderColorstring"000000"Cor da borda (hex)
borderWidthdouble1.0Espessura da borda

Cache

O engine mantém um cache LRU para imagens decodificadas (ImageLruCache). Imagens por URL são baixadas e cacheadas automaticamente (ImageUrlLoader).

Imagens em Detail Band

Ao usar binding dentro de uma DetailBand, cada registro pode ter sua própria imagem. O engine pré-carrega todas as URLs antes de renderizar o PDF para evitar delays na geração.

Sulfite do 🇧🇷 para o mundo © 2026 Rafael S. Pinheiro