hd-print
외부 시스템이 POST /render 로 formId 와 행 배열을 던지면 새 탭이 열려 그 탭이 인쇄 뷰어가 된다 — 상단에 인쇄·PDF·Excel·HWP 툴바, 아래에 A4 로 조판된 문서다. 호출부는 응답을 받지 않고 원래 화면도 그대로 남는다. 어느 필드가 어느 칸에 찍히는지는 서비스가 가진 양식이 정한다. 아래는 그 호출을 흉내 낸 데모다.
인쇄 POC 비교 화면 — 같은 표본과 건수로 세 갈래를 연다
연동 계약
POST /render
{
"formId": "household-vehicle", // 쓸 수 있는 값은 GET /forms 에 있다
"data": [ { "dong": "101", "ho": "1001", "carNo": "12가3456" } ],
"fileName": "세대차량 현황",
"orgName": "홈닷아파트 관리사무소", // 바닥글 왼쪽
"reason": "관리사무소 게시용" // 인쇄 사유
}
# 응답은 JSON 이 아니라 HTML 이다. 새 탭에 그려져야 하므로 fetch 가 아니라 폼 전송을 쓴다 —
# navigation 이라 CORS preflight 가 없고 빌드 도구가 없는 JSP/jQuery 에서도 그대로 동작한다
<form method="post" action="https://print.../render" target="_blank">
<input type="hidden" name="payload" value='{"formId":"household-vehicle","data":[...]}'>
</form>
# 카탈로그에 없는 일회성 양식이면 formId 대신 config 를 싣는다 (둘을 같이 보내면 400)
{ "config": { "title": "...", "columns": [ { "key": "dong", "label": "동" } ] }, "data": [...] }