콘텐츠로 이동

NextPDF Connect에서 HTML 테이블 렌더링

HTML 테이블 문자열의 구조화된 표 형식 데이터를 렌더링합니다. add_table은 레이아웃 전에 엄격한 DOMDocument 허용 목록으로 입력을 살균하므로 원본 마크업이 어떻게 작성되었든 출력이 일관되게 유지됩니다. 도구는 create_pdf, add_table, output_pdf이며 — 모두 Core입니다. 테이블은 row/column 그리드로 배치됩니다(CSS Tables 3 §3.1).

Terminal window
composer require nextpdf/server

트랜스포트를 바인딩합니다. 입력에는 <table> 루트, <tr> 행, <th>/<td> 셀이 포함되어야 합니다.

add_table은 고정된 요소 허용 목록(table, thead, tbody, tfoot, tr, th, td, caption, b, i, u, strong, em, br, p, span)을 적용합니다. 모든 속성이 제거됩니다 — 모든 요소에서 style, class, width, colspan, rowspan, id 및 기타 속성이 제거됩니다. 허용 목록에 없는 태그는 해당 텍스트 콘텐츠로 대체됩니다. 셀 텍스트는 문서의 활성 글꼴 상태로 렌더링되며, 이 상태는 add_table 전에 set_font로 설정합니다. 텍스트는 콘텐츠 스트림 순서대로 텍스트 표시 연산자에 의해 방출됩니다(ISO 32000-2 §9.4). 열 너비는 인라인 CSS가 아니라 레이아웃 엔진이 결정합니다.

도구역할위험 등급
create_pdf세션 열기안전
set_font셀 텍스트 글꼴 설정(선택 사항, add_table 전)주의
add_table테이블 살균 및 레이아웃주의
output_pdfPDF 렌더링 및 반환승인 필요 / 검토(base64)

도구 카탈로그가 공식 카탈로그입니다. 사용 가능한 도구는 설치된 등급에 따라 달라집니다.

  1. create_pdf(A4 세로, 제목) → document_id.
  2. 완전한 <table>...</table> 문자열(헤더 행과 데이터 행)을 사용한 add_table.
  3. output_pdf → base64, 또는 file_path를 지정하면 게이트가 적용된 파일 쓰기.

커서는 마지막으로 렌더링된 행 아래로 이동해 후속 콘텐츠를 위한 공간을 남깁니다.

전송하기 전에 HTML을 검증하십시오. 결정적 타이포그래피를 위해 set_font로 셀 글꼴을 설정하십시오 — 기본값에 의존하면 출력 글꼴이 구현에 종속된 상태로 남습니다. 호스트가 호출할 수 있는 도구를 제어하려면 보안 정책을 통해 레지스트리를 제한하십시오.

  • 비어 있거나 테이블이 아닌 HTML. <table>이 없는 입력은 렌더링 가능한 테이블이 없다는 오류를 반환합니다.
  • 잘못된 형식의 마크업. 균형이 맞지 않는 태그는 파싱 오류를 반환하므로, 먼저 구조를 검증하십시오.
  • 페이지보다 넓은 테이블. 열 수를 줄이거나, 콘텐츠 길이를 줄이거나, 가로 방향으로 전환하십시오.
  • 오버플로. 높이가 큰 테이블은 새 페이지로 이어집니다. 응답에서 position.page를 확인하거나, 미리 add_page를 호출하십시오.

작은 테이블은 예산 내에서 렌더링되며, 출력은 수 KB입니다. 프로필은 structural입니다. 살균은 파싱된 DOM에 대한 단일 패스로 실행됩니다.

속성 제거는 무조건적이며 우회할 수 없습니다. 이는 셀 마크업을 통한 스타일 및 스크립트 주입을 막습니다. 인라인 CSS, 이벤트 핸들러 또는 javascript: URL은 모두 제거됩니다. 허용 목록이 신뢰 경계이므로 렌더링된 출력을 원본의 임의 스타일링을 충실히 재현한 것으로 취급하지 마십시오.

진술사양reference_id
테이블은 row/column 셀 그리드로 배치됩니다.CSS Tables 3§3.1
텍스트는 스트림 순서대로 텍스트 연산자에 의해 표시됩니다.ISO 32000-2§9.4

해당 없음 — 여기의 모든 도구는 Core입니다.

CSS 지원 매트릭스 발췌(검증된 항목만)

섹션 제목: “CSS 지원 매트릭스 발췌(검증된 항목만)”

add_table은 범용 CSS 엔진을 실행하지 않습니다. 유일한 “CSS” 동작은 고정된 테이블 그리드 모델입니다: 행과 열은 테이블 구조에서 파생되며, 레이아웃 엔진이 너비를 선택합니다. 인라인 스타일링은 속성이 제거되므로 설계상 지원되지 않습니다. 엔진 수준(비 Connect) CSS 적용 범위는 프로젝트 CSS 지원 매트릭스를 참조하십시오.

add_table은 제공된 마크업을 한 번 DOM으로 파싱하고 단일 패스로 배치합니다. 외부 스타일시트에 대한 리플로는 없습니다. 페이지를 넘치는 테이블은 소급해서 리플로하지 않고 다음 페이지로 넘어갑니다.

매우 큰 테이블은 호출 전체 동안 파싱된 DOM과 배치된 셀을 메모리에 보유합니다. 대형 데이터셋은 최대 메모리 예산 내에 유지되도록 여러 add_table 호출로 분할하십시오.

트랜스포트사용 가능참고
MCP(stdio)대형 HTML은 stdio 프레임을 부풀립니다.
REST요청 본문에 HTML을 전송하십시오.
gRPC단항(Unary); 메시지 크기 제한이 적용됩니다.

create_pdf는 안전(Safe)입니다; set_fontadd_table은 주의(Caution)입니다; output_pdf는 승인 필요이며, base64 모드에서는 검토로 강등됩니다. 파일 출력은 승인 필요 상태로 유지됩니다 — output-approval을 참조하십시오.

Base64 출력:

{ "allowed": true }

파일 출력은 output-approval에 문서화된 챌린지 봉투를 반환합니다.