HotXLS 문서 / API 참조

이식 가능한 헤드리스 출력

버전 2.384.100부터 명시적인 캡처·렌더링 API를 갖춘 제한된 출력 파이프라인으로 제공됩니다

Windows에서 Classic XLS나 XLSX 통합 문서의 지원되는 사각형을 캡처하고, 불변 스냅샷을 옮긴 뒤, Free Pascal과 네이티브 Cairo로 Linux나 macOS에서 PDF, SVG, PNG를 렌더링합니다

캡처 어댑터는 통합 문서 엔진을 사용합니다. Windows 캡처는 기본 지오메트리 서비스를 쓰고, 네이티브 Linux·macOS 캡처는 애플리케이션이 고른 폰트 파일로 뒷받침되는 명시적인 FreeType/HarfBuzz 지오메트리 서비스를 공급할 수 있습니다

별도의 네이티브 컨슈머는 lxPortableCairo를 통해 lxPortableRender 장면을 받으며 Excel이나 데스크톱 세션이 필요 없습니다. 그 지오메트리 API 역시 기존의 이식 가능한 통합 문서 뷰·렌더 지오메트리 단위를 사용합니다

컨슈머는 불변 장면이나 전송 스트림을 받습니다. 통합 문서 로딩·계산의 플랫폼 요구 사항은 Free Pascal 지원에 별도로 설명되어 있습니다

기존 통합 문서 사각형 캡처

lxPortableWorkbookCapture의 CaptureXLSPortableRenderSnapshot은 IXLSWorkbook이나 IXLSXWorkbookOwner를 명시적 또는 기본 TXLSPortableRenderLimits와 함께 받습니다. 두 오버로드가 추가로 명시적 한도 뒤에 캡처 뷰에 스코프가 지정된 IXLSRenderGeometry 공급자를 받습니다

SheetIndex와 포함 Row1, Col1, Row2, Col2는 1 기반입니다. 결과 스냅샷은 캡처 사각형 기준의 0 기반 위치를 저장합니다

program CaptureRectangle;
{$APPTYPE CONSOLE}
uses SysUtils, Classes, lxHandleX, lxPortableRender,
  lxPortableWorkbookCapture;
var
  Workbook: TXLSXWorkbook;
  Owner: IXLSXWorkbookOwner;
  Snapshot: IXLSPortableRenderSnapshot;
  Stream: TFileStream;
begin
  Workbook := TXLSXWorkbook.Create;
  Owner := Workbook;
  if Workbook.Open('report.xlsx') <> 1 then
    raise Exception.Create('Cannot open report.xlsx');
  Snapshot := CaptureXLSPortableRenderSnapshot(Owner, 1, 1, 1, 30, 6);
  Stream := TFileStream.Create('report.hxrs', fmCreate);
  try
    SaveXLSPortableRenderSnapshot(Snapshot, Stream,
      XLSDefaultPortableRenderLimits);
  finally
    Stream.Free;
  end;
  Owner := nil;
end.

통합 문서 개체를 쓰는 동안 소유자 인터페이스를 살려 두세요. 인터페이스가 소유한 통합 문서를 수동으로 해제하지 말고 인터페이스를 놓아주는 방식으로 정리합니다

Classic XLS에서는 lxHandle의 TXLSWorkbook과 IXLSWorkbook을 같은 캡처 호출에 쓰세요

캡처는 기존 수식 캐시를 읽고 사각형 안에서 캐시가 없는 수식은 모두 거부합니다. 절대 암묵적으로 재계산하거나 외부 데이터를 가져오거나 소스 통합 문서에 새 스타일을 등록하지 않습니다

최신 수식 결과가 필요하면 캡처 전에 명시적으로 재계산하세요. 기존 캐시는 저장된 그대로 렌더링되며, 캡처가 캐시의 신선도를 보증하지 않습니다

이 작업은 읽기 뷰를 잡고 반환 전에 통합 문서 세대를 검사합니다. 반환된 스냅샷은 통합 문서 소유권에서 분리되어 통합 문서가 해제된 뒤에도 계속 쓸 수 있습니다

외관과 캡처 경계

스냅샷에는 서식이 적용된 표시 텍스트, 포인트 단위 물리 크기, 해석된 RGB 색, 지원되는 셀 폰트·정렬, 채우기, 테두리, 완전한 병합 사각형이 담깁니다. 숨은 행·열은 크기 0입니다

지원되는 폰트 외관에는 굵게, 기울임, 단일 밑줄, 취소선이 있고, 지원되는 셀 외관에는 단색 채우기, 왼쪽/가운데/오른쪽 가로 정렬, 위/가운데/아래 세로 정렬, 줄바꿈, 축소, 오른쪽에서 왼쪽 읽기 순서가 있습니다

얇게, 중간, 두껍게, 헤어라인, 이중, 점선, 파선, 중간 파선 통합 문서 테두리는 이식 가능한 테두리 스타일과 포인트 폭으로 매핑됩니다. 다른 테두리 스타일은 거부됩니다

지원되는 리치 텍스트는 유효 런 폰트, 포인트 크기, RGB 색, 굵게, 기울임, 단일 밑줄, 취소선, 런 단위 위첨자·아래첨자를 담습니다. 평범한 셀 외곽선/그림자/세로 폰트 효과, 지원되지 않는 밑줄 스타일, 그라디언트·패턴 채우기, 대각선 테두리, 들여쓰기, 텍스트 회전, 지원되지 않는 정렬은 거부됩니다

캡처 사각형은 병합된 각 셀을 완전히 담아야 합니다. 잘리거나 겹치거나 일관성 없는 병합과 병합 바깥 경계를 따라 맞지 않는 스타일은 거부됩니다

시트 배경과 지원되지 않는 시트 종류는 캡처를 거부합니다. 두 통합 문서 퍼사드 모두에서 지원되는 PNG/JPEG 이미지와 평범한 사각형/타원 텍스트 도형은 순서가 지정된 장면 개체로 캡처되고, 아래에서 설명하는 XLSX 셀 이미지, Boolean 체크박스, 지원되는 캐시된 XLSX 차트 부분집합도 함께 캡처됩니다. 지원되지 않는 차트, 도형 프리셋, WordArt, 그룹 변환, 플로팅 컨트롤, Slicer, Timeline, 스파크라인은 해석된 자취(footprint)가 사각형과 교차할 때 거부됩니다

자취가 확실하게 사각형 밖으로 해석되는 지원되지 않는 콘텐츠는 캡처와 공존할 수 있습니다. 해석할 수 없는 드로잉 자취는 잠재적으로 겹치는 내용을 조용히 빼놓는 대신 거부됩니다

사각형과 교차하는 Classic 테이블 스타일링은 거부됩니다. XLSX 내장 테이블과 지원되는 커스텀 Table 섹션은 분리된 스타일 컨텍스트에서 섹션 크기 줄무늬와 직접 셀 서식 재정의와 함께 해석됩니다

지원되는 가져온 Table 단색 또는 암묵적 차이 채우기에서는 RGB bgColor가 보이는 배경을 공급합니다. RGB fgColor만 있으면 물려받은 배경이 바뀌지 않고, 두 색을 모두 담은 섹션은 배경색을 사용합니다

타입 요약이 표현할 수 없는 외관을 담은 가져온 Table 섹션은 그 섹션이 적용될 때 거부됩니다. 밑줄, 숫자 서식, 명시적으로 지운 굵게/기울임, 폰트 구성표, 명시적 무채우기 패턴, 지원되지 않는 색 형태가 해당합니다. 캡처 사각형 밖의 무관한 섹션은 캡처를 막지 않습니다

지원되는 조건부 서식은 수식 평가 없이 적용됩니다. 리터럴 숫자 경계에 대한 캐시된 숫자·날짜 비교, 리터럴 Boolean·숫자 식, 텍스트 포함/접두/접미 규칙, 빈 값·오류가 해당합니다. 지원되는 속성마다 우선순위가 높은 외관이 이기고, XLSX StopIfTrue는 우선순위가 낮은 일치 규칙을 멈춥니다

Classic 텍스트 규칙은 리터럴 문자열 needle을 요구하며 캐시된 문자열 셀에 일치합니다. XLSX 텍스트 규칙은 저장된 텍스트 조건을 사용합니다

지원되는 차이 외관에는 tint가 붙은 해석된 테마 색과 평범한 인덱스 색이 포함됩니다. 가져온 자동 색, 비테마 tint, 전경·배경 색을 모두 담은 차이 채우기, 지원되지 않는 테두리·정렬·취소선·기타 표현되지 않는 차이 외관은 일치하는 규칙이 적용될 때 거부됩니다

평가가 필요한 조건 수식, 집계·날짜 의존 규칙, 색 스케일, 데이터 막대, 아이콘 집합은 발견되는 곳에서 거부됩니다. 겹치는 조건부 서식 규칙 수는 제한됩니다

Date1904 변환은 달력 오프셋을 적용하기 전에 해당하는 원시 숫자 서식 섹션을 고릅니다. 비활성 달력 섹션은 평범한 숫자 표시를 바꾸지 않고 Boolean 값은 Boolean으로 남습니다

Date1904 달력 섹션이 서식 조건이나 경과 시간 구성과 함께 선택되면 거부됩니다. 따옴표·이스케이프된 섹션 구분자도 거부되며, 다른 섹션이 달력 서식이라는 이유만으로 선택된 평범한 숫자 섹션이 막히지는 않습니다

리치 텍스트와 순서가 지정된 드로잉 장면

TXLSPortableCell.RichText는 Text, FontFamily, FontSizePoints, FontStyles, ColorRGB, BaselineShiftPoints를 담는 TXLSPortableTextRun 레코드 배열이며, 이어 붙인 런 텍스트는 셀 표시 텍스트와 정확히 같아야 합니다

XLSX 런은 생략된 속성을 지원되는 테이블·조건부 서식을 포함해 캡처된 유효 셀 폰트에서 물려받습니다. 명시적으로 지정된 false 플래그와 명시적 none/baseline/자동 색 값은 상속을 재정의합니다

네이티브 공유 문자열과 인라인 문자열은 런 경계와 공백을 보존합니다. 지원되지 않는 네이티브 폰트 자식, 속성, 네임스페이스, 테마/인덱스 리치 색, 발음 주석은 보이는 외관을 조용히 잃는 대신 거부됩니다

Classic 런은 저장된 BIFF 폰트 인덱스를 완전한 유효 런 폰트로 해석합니다. 발음 메타데이터와 지원되지 않는 런 폰트는 거부되며, 캡처는 통합 문서 세대와 스타일 풀을 유지합니다

Classic 텍스트 도형은 드로잉 래퍼를 만들거나 통합 문서를 바꾸지 않고 기존 OfficeArt 속성과 TXO 폰트 런을 읽습니다. 앵커는 실제 행·열 크기와 오프셋을 쓰고, 지원되는 단색 채우기·외곽선은 색과 폭을 유지하며, 내장된 PNG/JPEG 바이트는 전송 전에 분리됩니다

사각형 텍스트는 네이티브 7.2pt 가로, 3.6pt 세로 여백을 쓰고, 타원 텍스트는 내접 텍스트 사각형을 추가로 사용해 두 통합 문서 퍼사드 모두에서 평범한 텍스트를 도형 외곽 안에 유지합니다

가져온 Classic 사각형·타원 컨테이너는 타입 지정 텍스트와 서식을 유지합니다. 해석된 자취가 없는 건너뛴 네이티브 도형·그룹 메타데이터는 캡처를 명시적으로 거부하고, 알 수 없는 개체 꼬리 레코드, 드로잉 확장, 회전, 단색이 아닌 채우기, 지원되지 않는 선 스타일은 교차하는 개체를 거부합니다

가져온 XLSX 두 셀 사각형·타원 앵커는 알파가 있는 명시적 RGB 단색 채우기, 단색 또는 파선·점선 외곽선, 물리 앵커 오프셋, 평범한 리치 텍스트 단락 하나를 지원합니다. 각 런은 명시적인 굵게·기울임 해제를 포함해 유효 서체, 포인트 크기, 색, 굵게, 기울임, 단일 밑줄, 취소선을 유지합니다

가져온 도형 reader는 파싱 전에 원본 XML 스크래치 저장소를 예약하고 항목·바이트·텍스트 예산을 협조적으로 검사합니다. 도형 모델이나 없는 셀을 만들지 않고 통합 문서 드로잉 순서와 읽기 리스를 유지합니다

알 수 없는 네이티브 도형 속성, 효과, 테마, 회전, 그룹 변환, 여러 단락, 지원되지 않는 앵커 종류는 명시적으로 거부됩니다. 캡처 사각형 밖의 해석된 지원되지 않는 자취는 요청된 영역을 막지 않습니다

런 단위 위첨자·아래첨자는 런 폰트 크기의 2/3와 원래 포인트 크기의 1/3 기준선 이동을 사용합니다. Unicode 셰이핑 클러스터를 가르는 스타일 경계나 호환되지 않는 런 경계를 건너는 CRLF 시퀀스는 네이티브 레이아웃에서 거부됩니다

TXLSPortableSceneObject는 Kind, 포인트 기반 X, Y, Width, Height, 클리핑 사각형, 채우기/외곽선 색과 불투명도, 선택적인 경로 점, 텍스트 셀, 인코딩된 래스터 바이트와 크기를 담습니다

TXLSPortableSceneKind에는 xpskRectangle, xpskEllipse, xpskPolyline, xpskPolygon, xpskText, xpskPNG, xpskJPEG가 있습니다. 배열 순서가 드로잉 순서이며 뒤의 개체가 앞의 개체를 덮습니다

추가적인 CreateXLSPortableRenderSnapshot 오버로드는 TXLSPortableSceneObjects 배열을 받습니다. 0 기반 Objects와 ObjectCount는 IXLSPortableRenderSceneSnapshot에서 조회하며 getter는 런, 점, 래스터 배열을 포함한 분리 복사본을 반환합니다

셀 이미지와 체크박스 경로는 플로팅 드로잉보다 앞에 옵니다. 플로팅 드로잉은 통합 문서 순서, 물리 앵커, 뷰포트 클리핑을 유지하고, 텍스트 도형은 11포인트 마이너 테마 폰트에 7.2포인트 가로, 3.6포인트 세로 텍스트 여백을 씁니다

PNG와 JPEG 이미지는 헤더·픽셀 크기·바이트 프리플라이트 뒤에 네이티브로 디코딩됩니다. 지원되는 플로팅 이미지는 투명도와 늘이기 지오메트리를 유지하고, 셀 이미지는 가로세로 비를 유지한 채 셀이나 완전한 병합 사각형 안에 맞습니다

자르기, 회전, 그림자, 명도/감마 조정, 타일링, SVG 동반, 라이브 카메라 바인딩은 지원되지 않습니다. 보존된 이미지 XML은 지원되는 외관과 대조 검증되므로, 숨은 이미지, 알 수 없는 중첩 메타데이터, 타사 네임스페이스 속성, 비사각형 이미지 지오메트리, 모델링되지 않은 변환은 자취가 캡처와 겹칠 때만 거부됩니다

Boolean 셀 체크박스는 테마 중립적인 벡터 상자와 선택적 체크 표시를 쓰며, 행·열 서식에서 물려받은 유효 컨트롤을 포함합니다. 요청된 셀 순회는 탐색 전에 제한되고, 다른 컨트롤 종류와 빈 값·non-Boolean 체크박스 값은 거부되며, 지원되는 셀 장면은 스칼라 Boolean이나 이미지 오류 폴백 텍스트를 표시하지 않습니다

체크박스 기본값은 삽입 메타데이터일 뿐 없는 셀에 Boolean을 만들지 않습니다. 명시적인 직접 셀 컨트롤 지우기는 물려받은 컨트롤을 가리고, 캡처 읽기는 희소한 부재와 통합 문서 세대를 보존합니다

XLSReadPortableImageDimensions은 제한된 PNG IHDR이나 지원되는 8비트 순차·프로그레시브 JPEG 프레임을 검증하고 선언된 너비·높이를 반환합니다. 디코딩은 여전히 렌더러의 책임입니다

IXLSPortableSceneCaptureSource.ReadPortableSceneObjects는 1 기반 통합 문서 좌표와 범위 기준 포인트 장면 좌표를 쓰고, 범위와 협조 한도를 검증하며, 소비한 바이트·텍스트·항목 수를 반환합니다. HasPortableCellScene은 스칼라 표시가 캡처된 장면으로 대체된 셀을 식별합니다

네이티브 레이아웃 CellCount는 격자 셀을 세고 LineCount는 텍스트 장면 개체도 포함합니다. 텍스트 개체의 줄 CellIndex는 CellCount에 텍스트 장면 개체 중 0 기반 순서를 더한 값이고, GetCellGeometry는 격자 셀로 제한됩니다

스칼라 스냅샷은 계속 HXRSNP01로 직렬화되고, 런이나 장면 개체를 담은 스냅샷은 HXRSNP02로 직렬화됩니다. 로더는 같은 불변 소유권과 입력 위치 롤백 계약으로 두 버전을 모두 받습니다

결합된 항목 예산은 저장된 셀, 리치 런, 장면 개체, 경로 점을 셉니다. 바이트 한도는 할당 전에 스테이징·분리 배열, 텍스트, 인코딩된 래스터 페이로드, 제한된 네이티브 메타데이터 검사를 반영합니다

이식 가능한 스냅샷 API

심볼계약
EXLSPortableRender잘못된 스냅샷 데이터, 지원되지 않는 캡처 외관, 사용 불가 네이티브 백엔드, 리소스 한도, 렌더링 실패에 대해 던지는 예외입니다
TXLSPortableFontStyle, TXLSPortableFontStylesxpfsBold, xpfsItalic, xpfsUnderline, xpfsStrikeout이며 집합으로 결합됩니다
TXLSPortableHorizontal, TXLSPortableVerticalxphLeft, xphCenter, xphRight과 xpvTop, xpvCenter, xpvBottom입니다
TXLSPortableBorderStyle, TXLSPortableBorderxpbsNone, xpbsSolid, xpbsDashed, xpbsDotted, xpbsDouble이며 각 테두리는 Style, WidthPoints, ColorRGB를 담습니다
TXLSPortableCell0 기반 Row/Column, 양수 RowSpan/ColumnSpan, 표시 Text, FontFamily, FontSizePoints, FontStyles, TextColorRGB, FillColorRGB, HasFill, WrapText, ShrinkToFit, RightToLeft, Horizontal, Vertical, 네 개의 LeftBorder/TopBorder/RightBorder/BottomBorder 레코드입니다
TXLSPortableCells, TXLSPortableSizes저장된 셀과 포인트 단위 물리 행·열 크기의 동적 배열입니다
TXLSPortableRenderLimitsMaxGridCells, MaxStoredCells, MaxBytes, MaxTextCharacters가 만들기, 캡처, 직렬화를 제한합니다
XLSDefaultPortableRenderLimits2000000 격자 셀, 2000000 저장 셀, 67108864바이트, 16777216 UTF-16 텍스트 문자를 반환합니다
XLSDefaultPortableCell11포인트 Calibri와 기본 0 값 외관으로 한 셀 스팬을 초기화합니다. 만들기 전에 위치와 원하는 외관을 설정하세요
CreateXLSPortableRenderSnapshot세대, 행 높이, 열 너비, 저장된 셀을 검증·복사해 분리된 불변 인터페이스로 만듭니다. 셀은 고유해야 하고 행 우선 순서로 범위 안에 있어야 하며 겹치지 않는 스팬을 가져야 합니다
IXLSPortableRenderSnapshot읽기 전용 Generation, RowCount, ColumnCount, CellCount, 0 기반 RowHeightPoints, ColumnWidthPoints, 복사된 Cells 레코드입니다
스냅샷 getter 메서드GetGeneration, GetRowCount, GetColumnCount, GetCellCount, GetRowHeight, GetColumnWidth, GetCell이 같은 값을 노출합니다. 잘못된 인덱스 접근은 예외를 던집니다
SaveXLSPortableRenderSnapshot하나의 스냅샷을 검증해 제한된 비공개 버퍼로 직렬화한 뒤, 완전한 HXRSNP01 또는 HXRSNP02 페이로드를 주어진 스트림의 현재 위치에 복사합니다
LoadXLSPortableRenderSnapshot엄격한 UTF-8 텍스트로 버전이 붙은 리틀 엔디안 스냅샷을 읽고 개수, 지오메트리, 스타일, 스팬을 검증하며 뒤따르는 데이터를 거부합니다. 실패 시 입력 스트림 위치를 복원합니다

모든 한도는 양수여야 합니다. 검증된 최대치는 2000000 격자/저장 셀, 1073741824바이트, 268435456 텍스트 문자이며 크기는 최대 1048576행 × 16384열입니다

MaxGridCells는 저장되지 않은 빈 셀을 포함한 사각형 전체를 셉니다. CellCount는 저장된 보이는 셀과 병합 앵커를 세므로 더 작을 수 있습니다

Generation은 소스 세대나 애플리케이션이 공급한 값을 기록합니다. 통합 문서에 대한 살아 있는 링크도 자동 신선도 검사도 아닌 메타데이터입니다

네이티브 렌더링과 명시적 폰트

XLSPortableCairoBackendAvailable은 컴파일된 네이티브 백엔드의 가용성을 보고합니다. 네이티브 출력에는 Linux나 macOS의 Free Pascal과 프로세스가 쓸 수 있는 Cairo, FreeType, HarfBuzz, FriBidi 라이브러리가 필요합니다

macOS 빌드는 네 네이티브 라이브러리를 명시적으로 링크합니다. 비공개 종속성 접두와 명시적 자식 프로세스 로더 경로로 공유 컴파일러 설정이나 셸 프로필을 바꾸지 않고도 이들을 공급할 수 있습니다

Windows Delphi XE5, Win32, Win64는 이식 가능한 인터페이스를 컴파일하고 스냅샷 직렬화를 쓸 수 있지만, 네이티브 Cairo 레이아웃 준비는 그곳에서 백엔드 사용 불가를 보고합니다

명시적인 폰트 체인을 PrepareXLSPortableCairoLayout에 넘기세요. 렌더러는 먼저 일치하는 서체와 굵게/기울임 스타일을 시도하고, 그다음 공급된 순서대로 같은 스타일 폴백을 시도하며 각 지원 텍스트 클러스터에 글리프 커버리지를 요구합니다

캡처한 콘텐츠가 실제로 요구하는 regular, bold, italic, bold-italic 파일을 공급하세요. 시스템 폰트 탐색이나 합성 굵게/기울임 대체는 일어나지 않으며, 없는 파일, 스타일 매핑, 글리프 커버리지는 거부됩니다

폰트 바이트는 셰이핑 전에 캡처되므로 파일을 바꾸면 이후 레이아웃에 영향을 주고 기존 레이아웃은 캡처된 바이트를 유지합니다. FaceIndex는 폰트 파일이나 컬렉션 안의 음수 아닌 페이스를 고릅니다

네이티브 작업은 FreeType 페이스 안전을 위해 직렬화됩니다. 불변 스냅샷과 준비된 레이아웃 검사에는 살아 있는 통합 문서가 필요 없습니다

Fonts[0].FamilyName := 'Calibri';
Fonts[0].FileName := '/srv/fonts/Regular.ttf';
Fonts[0].FaceIndex := 0;
Fonts[0].Bold := False;
Fonts[0].Italic := False;

여기서 Calibri는 선택한 파일에 대한 명시적인 서체 별칭으로, 애플리케이션이 통제하는 폰트 매핑을 가능하게 합니다. 다른 폰트로 매핑할 때는 출력 지표를 확인하세요

렌더러는 하드 줄바꿈, 네 공백 탭 확장, 단락 양방향 정렬, 셰이핑된 합자·결합 문자, 탐욕적 감싸기, 축소 맞춤을 지원합니다. 감싸기가 축소보다 우선합니다

감싸기는 구현된 결합 문자, 변형 선택자, ZWJ, 비라마 클러스터 경계를 보존하고 공백과 표의문자 공백을 선호합니다. 완전한 UAX #29 자소 구현이나 Unicode 줄바꿈 알고리즘은 아니며, regional-indicator와 Hangul-Jamo 감싸기 경계는 보장되지 않습니다

폰트 크기는 1/64포인트로 해석되고 텍스트는 셀 경계에서 잘립니다. PDF는 논리 텍스트 매핑과 함께 명시적 폰트를 내장하고, SVG는 벡터 글리프 경로를 쓰며, PNG는 요청된 DPI로 같은 위치의 글리프를 그립니다

레이아웃 준비와 검사

심볼계약
TXLSPortableFontFile, TXLSPortableFontFiles하나의 명시적 매핑은 FamilyName, FileName, FaceIndex, Bold, Italic을 담습니다. 동적 배열은 정렬되어 1개에서 64개 사이의 매핑을 담습니다
TXLSPortableCairoFormat, TXLSPortableOutputFilesxpcfPDF, xpcfSVG, xpcfPNG와 파일 저장이 반환한 출력 파일 이름 배열입니다
TXLSPortableCairoOptions페이지 너비/높이, 네 여백, 셀 패딩, 래스터 DPI와 페이지, 글리프, 줄, 레이아웃, 출력, 폰트, 셰이핑, 드로잉 한도입니다
XLSDefaultPortableCairoOptions모든 옵션을 제한된 기본값으로 초기화합니다. 개별 필드를 바꾸기 전에 이것을 사용하세요
PrepareXLSPortableCairoLayout스냅샷을 검증·복사하고 명시적 폰트 바이트를 캡처하며 소유하는 준비된 TXLSPortableCairoLayout을 반환합니다. Free로 해제하세요
TXLSPortableCairoLayoutPageCount, LineCount, CellCount, GetTextLine, GetCellGeometry, SaveToStream, Save, Destroy를 노출합니다
TXLSPortableTextLineInfo복사된 줄 레코드는 CellIndex, GlyphCount, XPoints, BaselinePoints, WidthPoints, FontSizePoints, 논리 Text를 담습니다
TXLSPortableCellGeometry복사된 사각형은 전체 레이아웃 기준의 XPoints, YPoints, WidthPoints, HeightPoints를 담습니다
GetTextLine(Index), GetCellGeometry(Index)준비된 줄과 저장된 셀의 0 기반 인덱스 검사입니다. 잘못된 인덱스는 거부됩니다

페이지 매김은 고정된 인쇄 가능 영역 타일을 옆으로 간 뒤 아래로 순서로 자릅니다. 페이지 경계를 건너는 셀이나 텍스트 조각은 교차하는 모든 페이지에 나타나며, 자동 셀 전체 맞춤, 워크시트 인쇄 제목 반복, 통합 문서 페이지 설정 해석은 없습니다

렌더러 옵션과 한계

필드기본값과 의미
PageWidthPoints, PageHeightPoints595 × 842 포인트
MarginLeftPoints, MarginTopPoints, MarginRightPoints, MarginBottomPoints각각 36포인트이며 여백은 양수 인쇄 가능 사각형을 남겨야 합니다
CellPaddingPoints, RasterDPI2포인트와 96 DPI이며 DPI는 PNG 크기에 영향을 줍니다
MaxPages, MaxGlyphs, MaxLines256페이지, 2000000 셰이핑 글리프, 200000 텍스트 줄
MaxLayoutBytes제한된 레이아웃 작업과 래스터 표면 검사용 268435456바이트
MaxOutputBytes렌더링된 출력 버퍼당 268435456바이트이며, 개별 페이지 파일의 합이 아니라 전체 PDF 또는 SVG/PNG 한 페이지를 커버합니다
MaxFontBytes한 레이아웃의 명시적 폰트 입력 파일 전체에 걸친 134217728바이트
MaxShapedCharacters, MaxDrawOperations각각 16000000이며 셰이핑 작업과 셀별 페이지 드로잉 작업을 제한합니다

잘못되었거나 non-finite인 지오메트리와 양수가 아닌 작업 예산은 거부됩니다. 페이지 크기는 100000포인트, 래스터 DPI는 1200으로 제한되며 렌더링 전에 추가적인 바이트·개수·래스터 면적 검사가 이루어집니다

네이티브 프로세스 전역 폰트 바이트 풀은 추가로 서로 다른 버퍼 256개와 256MiB를 허용합니다. 정확히 동일한 바이트는 저장소를 공유할 수 있고, 용량은 실제 Cairo 소유 폰트 페이스가 버퍼를 놓아줄 때만 반환됩니다

레이아웃은 다 쓰면 해제하세요. 라이브러리는 공유 Cairo 캐시를 초기화하지 않으며, 논리적으로 끝난 레이아웃은 네이티브 Cairo가 페이스를 계속 소유하는 동안 폰트 바이트를 상주시킬 수 있습니다

출력 쓰기와 실패 처리

SaveToStream(Stream, Format, PageIndex = 0)은 PDF의 모든 페이지를 쓰며 PageIndex = 0이 필요합니다. SVG와 PNG는 선택한 0 기반 페이지를 씁니다

스냅샷 직렬화와 네이티브 렌더링은 대상 스트림으로 복사하기 전에 비공개 제한 버퍼에서 끝납니다. 검증이나 렌더 실패는 스트림을 보존하지만, 호출자 스트림 쓰기 실패는 부분 바이트를 남길 수 있고 그 스트림 자체의 실패 동작을 따릅니다

Save(FileName, Format)은 PDF 파일 하나 또는 페이지마다 SVG/PNG 파일 하나를 쓰고 경로들을 반환합니다. 여러 페이지 파일 이름은 확장자 앞에 -0001, -0002 이후 접미사를 넣습니다

기존 파일·디렉터리 대상은 거부됩니다. 각 저장은 모든 페이지를 스테이징하고 배타적인 새 대상을 공개하며 실패 시 자신의 스테이징·공개 출력을 제거합니다

파일시스템은 네이티브 배타적 스테이징과 링크 공개 작업을 지원해야 합니다. 별도의 PDF, SVG, PNG 저장은 별개의 작업이며 하나의 결합 트랜잭션을 이루지 않습니다

독립 Linux 컨슈머

Tests/Portable/RenderPortableSnapshot.pas는 스냅샷을 로드하고 하나의 레이아웃을 준비해 세 형식을 모두 저장하는 완전한 컨슈머입니다. 이식 가능한 단위와 네이티브 라이브러리가 설치된 상태에서 Linux에서 빌드하세요

fpc -Mdelphiunicode -Fu/path/to/HotXLS/Lib RenderPortableSnapshot.pas
./RenderPortableSnapshot report.hxrs /srv/output/report fonts.tsv 595 842 96

fonts.tsv는 매핑마다 탭으로 구분된 네 필드(서체 별칭, 절대 Linux 폰트 경로, 페이스 인덱스, regular, bold, italic, bolditalic 중 하나)를 담는 UTF-8 텍스트입니다

Calibri	/srv/fonts/Regular.ttf	0	regular
Calibri	/srv/fonts/Bold.ttf	0	bold
Calibri	/srv/fonts/Italic.ttf	0	italic
Calibri	/srv/fonts/BoldItalic.ttf	0	bolditalic

실제로 설치되었거나 애플리케이션이 공급한 폰트 파일을 쓰고, 기존 대상 파일은 거부되므로 새 출력 기본 이름을 고르세요. 첫 매핑이 커버하지 않는 문자 체계에는 같은 스타일 폴백을 추가하세요

Stream := TFileStream.Create('report.hxrs', fmOpenRead or fmShareDenyWrite);
try
  Snapshot := LoadXLSPortableRenderSnapshot(Stream,
    XLSDefaultPortableRenderLimits);
finally
  Stream.Free;
end;
Options := XLSDefaultPortableCairoOptions;
Layout := PrepareXLSPortableCairoLayout(Snapshot, Fonts, Options);
try
  Files := Layout.Save('/srv/output/report.pdf', xpcfPDF);
  Files := Layout.Save('/srv/output/report.svg', xpcfSVG);
  Files := Layout.Save('/srv/output/report.png', xpcfPNG);
finally
  Layout.Free;
end;

캐시된 차트 기록

lxPagination의 XLSRecordCachedChartScene은 기존 차트 레이아웃 렌더러의 포인트 기반 프리미티브를 불변의 이식 가능한 장면 표현으로 기록합니다. 소스는 소유 워크시트가 없고 보존된 네이티브 XML이 없는 분리 TXLSXChart여야 하므로, 기록은 워크시트 참조를 해석하거나 통합 문서 캐시를 새로 고칠 수 없습니다

현재 부분집합은 하나의 기본 플롯 그룹, 유한 숫자 값 캐시, 엄격히 증가하는 제한된 캐시 인덱스를 갖춘 세로 막대, 가로 막대, 꺾은선, 분산형, 원형, 도넛, 평범한 단일 계열 영역 차트를 지원합니다. 분산형 범주 캐시는 숫자 X 좌표를 담고 다른 계열군은 저장된 범주 레이블을 씁니다

세로·가로 막대, 꺾은선, 영역 값 캐시는 연속된 0 기반 인덱스를 가져야 합니다. 희소한 범주 값 빈틈은 거부되며, 기록이 없는 인덱스를 큰 배열로 확장하지 않습니다

막대 플롯은 가로 지오메트리와 범주 레이블을 유지합니다. 원형·도넛 플롯은 범주 범례를 쓰고 FirstSliceAng과 HoleSize를 따르며 숫자 축은 생략하고, 평범한 단일 계열 영역 플롯은 0 기준선 주위의 채워진 다각형을 유지합니다

꺾은선과 분산형 계열은 LineVisible, LineColorRGB, LineWidthPoints로 독립적인 선 표시 여부, 명시적 RGB 색, 포인트 폭을 지원합니다. LineStyleSet, LineColorSet, LineWidthSet은 명시적 설정과 물려받은 기본값을 구별하고, EffectiveLineVisible은 기존 채우기 전용 계열 규약을 해석합니다

마커는 자동 원, 명시적 원, 마커 없음을 지원합니다. 2부터 72까지의 명시적 MarkerSize는 포인트 지름을 정하고, MarkerFillSet과 MarkerBorderSet은 명시적 검정 RGB 0과 자동 색 선택을 구별합니다. 연결 선분은 불투명 데이터 마커보다 먼저 그려집니다

저장된 폭이 없는 명시적 마커 테두리는 평범한 0.75포인트 선을 쓰고, 범례 샘플의 원 지름은 6포인트로 제한됩니다. 요청된 제목 폰트는 기본 텍스트 속성뿐 아니라 실제 리치 텍스트 런에도 기록되어 Excel이 차트를 내보낼 때 보이는 크기, 색, 강조가 유지됩니다

지원되지 않는 차트 계열군, 누적·다중 계열 영역 플롯, 다중 계열 원형 플롯, 갤러리 스타일, 둥근 모서리, 보조·결합 플롯 그룹, 날짜 축, 커스텀 숫자 서식, 로그 축, 커스텀 교차 동작, 회전 텍스트, 추세선, 오차 막대, 계층 범주, 데이터 레이블, 다른 마커 모양, 없는 값 캐시는 렌더링 전에 EXLSPortableRender를 던집니다

커스텀 값 축 눈금 폰트, 보조 격자, 명시적 주·보조 단위, 잘못된 명시적 계열 색, 지원되지 않는 축 위치는 거부됩니다. 막대 범례는 현재 평범한 오른쪽 배치를 요구하고, 원형 플롯은 유한한 0이 아닌 캐시된 총합과 호 스크래치 저장소를 미리 보수적으로 예약하는 제한된 지오메트리를 요구합니다

반환된 배열은 프리미티브 드로잉 순서, 명시적 색, 폰트, 텍스트 정렬, 불투명도, 차트 클리핑 경계를 유지합니다. 항목·바이트·텍스트 회계에는 보수적인 렌더러 스크래치 예약이 포함되며, 협조 캐시 검사는 스크래치 배열 할당 전에 이루어집니다

XLSValidateCachedChartSceneModel은 워크시트 셀을 해석하지 않고 모델에 대해 같은 제한된 캐시·외관 프리플라이트를 수행합니다. XLSX 캡처 브리지는 복제 전에 이 검사를 쓰고, 로컬 1차원 A1 참조, 물리 네이티브 앵커 오프셋, 범위 클리핑, 드로잉 순서로 지원되는 작성 차트 모델을 기록합니다

플랫폼 중립 레코더는 lxPortableChart에 있고, 기존 lxPagination 진입점은 같은 레이아웃·프리미티브 기록 본문을 공유하며 지원되는 각 계열군에 대해 Windows 렌더러의 동작과 일치하는 불변 장면 바이트와 예산 회계를 유지합니다

네이티브 Linux·macOS 통합 문서 캡처는 아래에서 설명하는 명시적 지오메트리 오버로드를 사용합니다. 가져온 계열 RGB 채우기, 플롯 영역 배경, 차트 배경, 차트 테두리는 자체 네임스페이스가 해석된 도형 속성에서 복구되므로 중첩 계열 색이 플롯 배경을 덮지 않습니다

가져온 보존 ChartML은 네임스페이스가 확장된 요소·속성·중요 텍스트 스트림이 지원되는 타입 지정 재구성과 일치할 때만 받아들여집니다. 네임스페이스 별칭과 속성 순서는 정규화되고, 모델링되지 않은 네이티브 확장, 타사 속성, 지원되지 않는 외관은 보수적으로 거부됩니다

원본 XML과 재구성 스크래치 예산은 복제·투영 작업 전에 검사됩니다. 검증된 보존 XML을 지우는 것은 분리 복사본뿐이며, 소스는 네이티브 메타데이터, 셀 저장소, 캐시 내용, 세대를 유지합니다

캡처는 공개 Shapes 래퍼에 없는 차트 프레임을 포함해 기저 OfficeArt 드로잉 순서를 순회하며, 교차하는 지원되지 않는 프레임은 조용히 빼놓는 대신 거부합니다

선언된 외관을 가진 Classic 캐시 차트

Classic BIFF8 캡처는 위의 일곱 평범한 차트 계열군을 코어 레코드, 로컬 저장 값, 명시적 선형 배율, 외관이 표현 가능할 때 지원합니다. 수식을 평가하거나 희소 저장소를 확장하거나 컴파일된 수식 트리를 복제하지 않고 유지된 레코드와 사용 가능한 수식 캐시를 읽습니다

TXLSWorkbook.CreateReadOnlyViewWithChartAppearance(Source, Limits, Geometry)로 IXLSClassicChartAppearanceSource가 공급하는 TXLSClassicChartAppearanceDeclaration 값의 고정 집합을 담은 별도의 읽기 전용 뷰를 만드세요. Geometry는 Windows에서 선택 사항이고 Linux나 macOS에서 명시적 네이티브 폰트 측정을 공급합니다

TXLSClassicChartAppearanceDeclarations는 애플리케이션이 그 소스를 구현할 때 쓸 수 있는 프리미티브 선언의 동적 배열입니다

그 구성된 뷰를 CaptureXLSPortableViewRenderSnapshot(View, SheetIndex, Row1, Col1, Row2, Col2, Limits)에 넘기세요. 좌표는 1 기반이며 어댑터는 캡처가 끝나거나 거부될 때 호출자의 활성 워크시트를 복원합니다

평범한 캡처 진입점은 해석되지 않은 유효 Classic 레이아웃·범례 폰트를 계속 거부합니다. 별개의 뷰 진입점은 이미 고정된 선언과 지오메트리 공급자를 사용합니다

선언 멤버계약
Generation, SheetIndex, ObjectId고정된 통합 문서 세대, 1 기반 워크시트 인덱스, 실제 저장된 차트 개체 식별입니다. 낡은 세대, 없거나 반복된 식별, 다른 개체에 속한 식별은 거부됩니다
HasChartSize, ChartWidthPoints, ChartHeightPoints명시적인 유한 양수 차트 프레임 크기(포인트)입니다. 저장된 앵커 원점과 드로잉 순서를 유지하며, false 플래그는 앵커 파생 크기를 유지합니다
HasPlotInnerRectangle, PlotInnerRectangle레이블과 축 제목을 제외한 명시적 내부 플롯 사각형입니다. 이 선언 외관 경로에서는 필수입니다
HasTitleRectangle, TitleRectangle차트에 제목이 있을 때의 명시적 제목 사각형입니다. 소스 텍스트, 폰트 서체, 강조, 색은 여전히 검증된 코어 레코드에서 옵니다
HasLegendRectangle, LegendRectangle범례가 있을 때의 선언된 범례 경계입니다
HasLegendFontSize, LegendFontSizePoints있는 범례에 대한 호출자의 명시적 유효 포인트 크기입니다. 코어 폰트 서체, 강조, 색은 유지됩니다
TXLSPortableChartRectangleLeft, Top, Width, Height는 캡처된 차트 프레임 기준의 유한 포인트입니다. 활성 사각형은 그 프레임 안의 양수 크기를 요구합니다
Count, GetCount, ReadDeclaration소스는 제한된 개수를 보고하고 뷰가 구성된 동안 0 기반 인덱스마다 프리미티브 레코드 하나를 반환합니다. 선언은 이후 캡처 전에 복사됩니다

이 값들은 호출자가 선언한 외관이지 자동 Excel 레이아웃이나 추론된 폰트 배율이 아닙니다. 독립적으로 검사된 소스나 애플리케이션 정의 레이아웃에서 얻고, 렌더링에 쓰이는 명시적 네이티브 폰트 매핑으로 출력을 검토하세요

명시적 프레임 크기와 내부 플롯 경계는 검증된 축 레이블 폰트를 위한 충분한 공간을 남겨야 합니다. 레이블 공간이 부족하면 텍스트를 자르거나 맞춤 배율을 적용하는 대신 거부됩니다

애플리케이션은 뷰가 해제될 때까지 통합 문서 소유자를 살려 둡니다. 빌려 쓴 뷰는 읽기 리스를 잡고 선언 소스를 유지하지만, 결과 불변 스냅샷은 통합 문서나 공급자를 유지하지 않습니다

지원되는 코어 투영에는 리터럴 단색 채우기, 보이는 단색 선, 원 마커, 제목·범례 텍스트, 범주 배치, 제한된 명시적 숫자 눈금이 포함됩니다. 자동 배율, 해석되지 않은 자동 마커 외관, 스무딩, 알 수 없는 리치 확장, 타사·비선형 계열 참조, 표현되지 않는 점 스타일은 출력 전에 거부됩니다

지오메트리나 범례 크기를 선언한다고 알 수 없는 차트 확장이나 검증되지 않은 스타일을 무시해도 되는 것은 아닙니다. 바이트·텍스트·저장 셀·장면 한도는 유지된 소스 데이터, 선언, 분리 캐시, 기록 스크래치 공간에 그대로 적용됩니다

추가적인 XLSValidateCachedChartSceneModel과 XLSRecordCachedChartScene 오버로드는 분리 모델에 대해 TXLSCachedChartSceneAppearance를 받습니다. 명시적 컨트롤을 설정하기 전에 XLSDefaultCachedChartSceneAppearance로 초기화하세요

lxClassicChartScene의 하위 레벨 XLSReadClassicChartScene은 유지된 TXLSCustomChart, 정확한 소스 계산기, 임대된 TXLSClassicChartSceneSource에서 호출자 소유의 분리 TXLSXChart와 프리미티브 외관·예산 카운터를 반환합니다. 기록 뒤에 반환된 모델을 해제하세요

TXLSClassicChartSceneSource.ReadAppearance는 프리미티브 선언을 공급하고, ReadCell은 제한된 고정 로컬 저장 값을 읽으며, ReadFont는 제한된 유효 코어 폰트 데이터로 주어진 텍스트 스타일을 채우고, PaletteColor는 명시적 저장 팔레트 항목을 해석합니다. 애플리케이션 구현은 고정된 소스를 보존하고 주어진 모든 바이트·문자 쿼터를 지켜야 합니다

장면 외관 멤버의미
SeriesMarkerSizePoints계열별 제한된 포인트 지름이며 소수 값도 포함입니다. 0은 모델의 마커 크기를 유지하고 0이 아닌 재정의는 2부터 72포인트 사이여야 합니다
OverrideBorder, BorderColorRGB, BorderWidthPoints명시적인 차트 프레임 외곽선 외관입니다
AxisColorRGB, TickColorRGB, GridlineColorRGB, AxisWidthPoints, TickWidthPoints, GridlineWidthPoints명시적인 축·눈금·주 격자 색칠과 포인트 폭입니다
AreaFillOpacity, SeriesFillAlpha영역 불투명도와 계열 채우기 알파입니다
UseAxisTickControls, CategoryBetween검증된 명시적 축 컨트롤과 범주 배치입니다
TitleOffsetXPoints, TitleOffsetYPoints레코더의 평범한 제목 위치에 적용되는 유한 오프셋입니다
OverridePlotInnerRectangle, OverrideTitleRectangle, OverrideLegendRectangle, PlotInnerRectangle, TitleRectangle, LegendRectangle차트 프레임 기준의 리터럴 포인트 사각형입니다
PieRadiusRatio원형 플롯 반지름이며 작은 플롯 차원의 제한된 비율입니다

차트 프리미티브는 HotXLS의 기존 레이아웃 정책을 따릅니다. Excel의 모델링되지 않은 기본값을 요구하는 차트 갤러리 외관은 명시적인 unsupported 경계로 남습니다

직접 네이티브 통합 문서 캡처

CreateXLSPortableCairoRenderGeometry(Fonts, Calibration, Generation, Backend, Options, CacheCapacity)는 네이티브 출력에 쓰이는 것과 같은 명시적 폰트 파일, FreeType, HarfBuzz, 텍스트 셰이핑으로 뒷받침되는 IXLSRenderGeometry를 반환합니다. 열 너비는 통합 문서 캘리브레이션과 함께 실제 측정된 최대 숫자 너비를 사용합니다

공급자는 분리된 폰트 바이트와 제한된 지표 캐시를 소유하고, 할당 전에 폰트·레이아웃 예산을 검사하며, 캐시 상태를 바꾸기 전에 측정 요청을 검증합니다. 가득 찬 캐시는 용량을 넘지 않으면서 캐시되지 않은 측정을 반환할 수 있습니다

캡처는 공급자 세대와 모든 캘리브레이션 필드가 현재 읽기 전용 통합 문서 뷰와 일치하는지 확인하고 그 뷰에 공급자를 유지하며, 통합 문서의 기본 지오메트리 팩터리는 바꾸지 않습니다. 평범한 기본 네이티브 지오메트리는 명시적인 GDI 경계로 남습니다

공급자를 만들기 전에 명시적으로 해제된 뷰로 세대를 캡처하세요. 임시 인터페이스 결과를 유지하면 주변 스코프가 끝날 때까지 읽기 리스가 유지될 수 있습니다

View := Owner.CreateReadOnlyView;
Generation := View.Generation;
View := nil;
Geometry := CreateXLSPortableCairoRenderGeometry(Fonts,
  Workbook.CaptureRenderCalibration, Generation, xlsrgbBitmap,
  XLSDefaultPortableCairoOptions, 4096);
Snapshot := CaptureXLSPortableRenderSnapshot(Owner, 1, 1, 1, 30, 6,
  XLSDefaultPortableRenderLimits, Geometry);

네이티브 컨슈머는 LX_PORTABLE_CORE와 대응하는 네이티브 종속성으로 컴파일합니다. Windows에서 네이티브 Cairo 지오메트리 팩터리 호출은 명시적으로 거부되지만, Windows 캡처는 같은 스코프 오버로드로 기존 지오메트리 팩터리를 쓸 수 있습니다

실제 네이티브 캡처는 위에서 설명한 모델링된 스칼라, 리치 텍스트, 지원되는 래스터, 평범한 도형, 일곱 캐시 차트 계열군을 지원합니다. 차트 캡처는 원래 가져온 ChartML, 캐시된 점, 희소 셀 저장소, 압축 저장소, 통합 문서 세대를 보존합니다

불변 인쇄 영역, 여백, 맞춤·백분율 배율, 반복 제목, 수동 나누기, 셀·병합 셀 페이지 매김은 이식 가능한 인쇄 플랜을 참조하세요

고급 캡처 브리지

lxSemanticSnapshot의 IXLSRenderCaptureSource는 지원되는 읽기 전용 통합 문서 뷰가 구현하는 내부 조율 인터페이스입니다. 평범한 애플리케이션은 소유자 기반 캡처 오버로드를 호출해야 합니다

TXLSClassicReadOnlyWorkbookView와 TXLSXReadOnlyWorkbookView는 아래 여덟 렌더 메서드를 포함해 IXLSRenderCaptureSource를 구현합니다. 이 클래스들은 읽기 전용 뷰를 통해 캡처를 조율하고, 어댑터가 수명을 관리하며 애플리케이션은 통합 문서 소유자 인터페이스를 유지한 채 CaptureXLSPortableRenderSnapshot을 호출합니다

기존 TryReadCell 메서드는 읽기 전용 뷰를 통해 저장된 셀 스냅샷을 공급합니다. 렌더 메서드는 이식 가능한 캡처용 분리 외관과 지오메트리를 추가합니다

멤버 또는 헬퍼용도
ValidateRenderRange캡처 전에 1 기반 사각형 경계와 지원되지 않는 외관 자취를 검사합니다
ReadRenderStyle1 기반 셀에 대해 분리된 TXLSSemanticCellStyle 메타데이터와 리치 텍스트 존재 플래그를 반환합니다
IXLSRenderRichTextCaptureSource, ReadRenderRichText제한된 분리 TXLSRenderTextRuns를 반환하는 선택적 뷰 확장입니다. 각 TXLSRenderTextRun은 Text와 유효 시맨틱 Style을 담으며, 주어진 기본 스타일과 양수 런/바이트 쿼터를 쓰고 셀을 구체화하거나 스타일 풀을 바꾸지 않습니다
RenderRowHeightPoints, RenderColumnWidthPoints물리 지오메트리를 반환하며 숨은 차원은 0으로 접습니다
IXLSRenderGeometryCaptureSource, SetRenderCaptureGeometry세대·캘리브레이션 검증 뒤에만 명시적 공급자를 유지하는 선택적 뷰 확장입니다. 잘못된 공급자는 유지된 뷰 공급자를 바꾸지 않습니다
ReadRenderMerge셀을 포함하는 완전한 포함 1 기반 병합 사각형을 보고합니다
ResolveRenderColor시맨틱 테마/인덱스/RGB 외관을 이식 가능한 RGB 색으로 해석하며 지원되는 곳에서는 주어진 기본값을 사용합니다
RenderDate1904, RenderRightToLeft통합 문서 날짜 체계와 시트 읽기 순서 컨텍스트를 노출합니다
XLSRenderCaptureLiteral평가 없이 캡처할 수 있도록 지원되는 리터럴 Boolean, 유한 숫자, 단순 따옴표 텍스트 부분집합을 인식합니다
XLSRenderCaptureIntersects공백으로 구분된 로컬 A1 범위를 1 기반 사각형에 대해 검사하며 해석되지 않는 범위 문법은 거부합니다
XLSRenderCaptureCondition기존 스칼라에 대해 지원되는 조건 부분집합을 평가합니다. 비교 연산자 코드 1부터 8은 between, not-between, equal, not-equal, greater, less, greater-or-equal, less-or-equal입니다
XLSRenderCaptureApplyDxfAppliedSlots 마스크로 우선순위가 높은 서식을 유지하면서 지원되는 분리 차이 외관을 적용합니다
TXLSDxfStyle._MarkRenderUnsupportedAppearance, TXLSDxfStyle._HasRenderUnsupportedAppearance내부 접두 조율 메서드로, 타입 지정 차이 모델이 안전하게 렌더링할 수 없는 외관을 기록·검사합니다. Assign은 마커를 유지하고 캡처는 표시된 일치 스타일을 거부합니다

이 브리지 헬퍼는 EXLSSemanticSnapshot을 던질 수 있으며, 공개 캡처 어댑터는 그 예외를 EXLSPortableRender로 번역합니다