PDF 빈칸 자동 채우기
딸깍문서의 혁신적인 PDF 빈칸 감지 및 자동 채우기 기능을 상세히 설명합니다.
개요
AI Vision (Claude) 기술을 사용하여 PDF 양식의 빈칸을 자동으로 감지하고, 사용자가 입력한 내용으로 채워 새로운 PDF를 생성합니다.
flowchart TB
A[PDF 업로드] --> B[페이지 이미지 변환]
B --> C[AI Vision 분석]
C --> D[빈칸 좌표 추출]
D --> E[입력 필드 생성]
E --> F[사용자 입력]
F --> G[PDF 생성]
G --> H[다운로드]
지원 양식 유형
감지 가능한 빈칸
| 유형 | 예시 | 감지 정확도 |
|---|---|---|
| 밑줄 입력란 | 성명: ____________ | 높음 |
| 점선 입력란 | 성명: ............ | 높음 |
| 박스 입력란 | □ □ □ □ □ □ | 중간 |
| 테이블 빈 셀 | 빈 테이블 셀 | 높음 |
| 체크박스 | □ 동의함 | 중간 |
| 서명란 | (인), [서명] | 높음 |
필드 타입
type FieldType =
| "text" // 일반 텍스트
| "date" // 날짜
| "number" // 숫자
| "checkbox" // 체크박스
| "signature" // 서명
| "other"; // 기타
빈칸 감지 프로세스
1. PDF 이미지 변환
PDF 각 페이지를 고해상도 이미지로 변환합니다:
const canvas = document.createElement("canvas");
const context = canvas.getContext("2d");
const scale = 2; // 고해상도를 위한 스케일
canvas.width = viewport.width * scale;
canvas.height = viewport.height * scale;
2. AI Vision 분석
Claude Vision API로 이미지를 분석합니다:
const response = await anthropic.messages.create({
model: "claude-sonnet-4-20250514",
max_tokens: 4000,
messages: [
{
role: "user",
content: [
{
type: "image",
source: {
type: "base64",
media_type: "image/png",
data: base64Image,
},
},
{
type: "text",
text: "PDF 양식에서 밑줄 입력란을 찾아주세요...",
},
],
},
],
});
3. 좌표 추출
AI가 반환하는 빈칸 좌표 형식:
interface DetectedBlank {
label: string; // 옆 라벨 텍스트
x_percent: number; // X 좌표 (0-100%)
y_percent: number; // Y 좌표 (0-100%)
width_percent: number; // 너비 (%)
height_percent: number; // 높이 (%)
field_type: FieldType; // 필드 타입
is_required: boolean; // 필수 여부
}