네이티브 XFA 이미지·그래픽 값

이벤트 호스트는 네이티브 image, arc, line, rectangle 값 자식과 지원하는 edge, corner, fill 속성 경로를 만들고, draw의 유효 값은 네이티브 PDF 소비자에게 전달됩니다

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";
}

네이티브 값 선택은 상호 배타적이고, 생성은 템플릿과 다른 반복 occurrence를 보존합니다

arc와 line은 엣지 하나씩만 허용하고, rectangle은 엣지 넷과 코너 넷을, arc와 rectangle은 fill 하나를 허용합니다

line, rectangle, arc의 기본값은 hand=even입니다. line의 기본 slope은 백슬래시이고, arc는 circular=0, startAngle=0, sweepAngle=360이 기본입니다

image는 aspect=fit과 transferEncoding=base64가 기본이고 contentType, href, name 속성은 비어 있습니다

이미지 소비

임베드된 PNG·JPEG draw 값은 디코딩된 소스 색을 유지합니다. PNG 투명도는 소스 채널에 합성되지 않고 네이티브 PDF 소프트 마스크로 저장됩니다

fit은 nominal 영역 안에서 이미지 비율을 유지하고, none은 두 차원에서 독립적으로 영역을 채우며, width와 height는 이름에 해당하는 차원을 맞추면서 비율을 유지하고, actual은 물리 이미지 치수를 씁니다

이미지는 nominal 영역 중앙에 놓이고 그 영역으로 클리핑됩니다. 스케일링과 클리핑은 주변 그래픽 상태를 유지합니다

actual 크기 산정은 인치당 도트 또는 센티미터당 도트 단위의 PNG pHYs 밀도와 JFIF 밀도를 읽습니다. 지원하는 물리 밀도 레코드가 없는 이미지는 96 DPI를 씁니다

기존 템플릿 이미지 body를 교체하면 네이티브 폼 속성이 재정의하지 않는 한 템플릿 속성이 유지됩니다

FPC 소비자는 원본 PNG·JPEG 채널을 직접 읽어 LCL 비트맵 할당을 통한 픽셀 손실을 피합니다. 같은 불투명 이미지가 반복되면 네이티브 리소스 재사용이 유지됩니다

그래픽 소비

만들어진 rectangle, line, arc 값은 유효 엣지 색·두께를 갖춘 네이티브 경로를 만듭니다. 1포인트 미만 두께도 포함이며, line slope과 arc 각도 범위가 소비자에게 전달됩니다

새 반복 인스턴스는 독립적인 네이티브 그래픽 속성을 받고, 스크립트나 네이티브 속성 예산 실패는 정확한 네이티브 XDP 바이트를 복원합니다

남은 개선

네이티브 exData XML 연산은 외부 콘텐츠를 트랜잭션으로 임포트하고 영속화된 XHTML draw를 소비합니다

외부 이미지 리졸루션, EXIF 같은 추가 물리 메타데이터, imageEdit 위젯 소비, 완전한 fill·코너 렌더링, handedness, 원호 지오메트리, 완전한 scalar 검증은 별도 구현 대상으로 남습니다

참고와 관련 API

속성 문법과 이미지 모드는 XFA 3.3을 따릅니다. scalar 값 속성, draw·캡션 값, 대화형 XFA 런타임을 참고하세요