Valores nativos de imagens e gráficos no XFA

O event host cria nós filhos nativos de valores de imagens, arcos, linhas e retângulos e os paths de propriedades suportados de edge, corner e fill; o valor efetivo de um draw chega ao consumer nativo de PDF

Criando um valor de draw

function updateGraphic(row, pngBase64) {
  const image = row.logo.value.image;
  image.contentType = "image/png";
  image.aspect = "fit";
  image.value = pngBase64;
  const line = row.rule.value.line;
  line.slope = "/";
  line.edge.thickness = "0.25pt";
  line.edge.color.value = "0,0,255";
}

As escolhas nativas de valores são mutuamente exclusivas, e a criação preserva o template e as demais ocorrências repetidas

Arc e line permitem um edge cada, rectangle permite quatro edges e quatro corners, e arc e rectangle permitem um fill

Line, rectangle e arc têm default hand=even; line tem default de slope em barra invertida, enquanto arc tem default circular=0, startAngle=0 e sweepAngle=360

Image tem default aspect=fit e transferEncoding=base64, com atributos contentType, href e name vazios

Consumo de imagens

Draw values embutidos de PNG e JPEG retêm suas cores decodificadas da origem; a transparência PNG é armazenada como uma soft mask nativa do PDF, em vez de compor nos canais da origem

Fit preserva a razão da imagem dentro da região nominal, none preenche a região independentemente nas duas dimensões, width e height preservam a razão enquanto casam com a dimensão nomeada, e actual usa as dimensões físicas da imagem

As imagens são centralizadas em sua região nominal e clipadas a essa região; scaling e clipping preservam o graphics state ao redor

O dimensionamento actual lê a densidade pHYs do PNG e a densidade JFIF em pontos por polegada ou pontos por centímetro; uma imagem sem record de densidade física suportado usa 96 DPI

Substituir o corpo de uma imagem existente do template preserva os atributos do template, a menos que um atributo nativo de formulário os sobrepunha

O consumer FPC lê os canais originais de PNG e JPEG diretamente, evitando perda de pixels pela atribuição de bitmaps LCL; imagens opacas idênticas repetidas retêm a reutilização nativa de recursos

Consumo de gráficos

Valores criados de rectangle, line e arc produzem paths nativos com suas cores e larguras efetivas de edges, incluindo larguras abaixo de um ponto; o slope de linhas e a extensão angular de arcos chegam ao consumer

Instâncias repetidas novas recebem propriedades nativas independentes de gráficos, e falhas de script ou do orçamento nativo de atributos restauram os bytes exatos do XDP nativo

Refinamentos restantes

As operações nativas de XML de exData importam conteúdo estrangeiro transacionalmente e consomem draws XHTML persistidos

Resolução de imagens externas, metadados físicos adicionais como EXIF, consumo de widgets imageEdit, rendering completo de fills e corners, handedness, geometria de arcos circulares e validação escalar completa permanecem alvos de implementação separados

Referência e APIs relacionadas

A gramática de propriedades e os modos de imagens seguem o XFA 3.3; veja Propriedades de valores escalares, Valores de draw e captions e Runtime XFA interativo