쉘에서 PDF 양식 작성

쉘에서 PDF 양식 작성

셸에서 비대화식으로 PDF 양식을 작성하는 도구가 있습니까?

내 사용 사례에서는 각 필드에 대한 텍스트를 설정하고(필드가 정의된 순서에 관계없이) PDF 파일을 저장하는 것으로 충분하지만 질문을 보다 일반적으로 만들기 위해 CLI를 통해 모든 종류의 상호 작용이 가능합니다(체크박스, 라디오 버튼, 채워진 텍스트 선택, 버튼 클릭 등).

나는 Poppler가일부 기능PDF 양식에 액세스하지만 이러한 양식을 사용하는 CLI 유틸리티를 찾을 수 없습니다.

답변1

예, pdftk이 옵션이 있습니다. ~에서man pdftk

fill_form <FDF data filename | XFDF data filename | - | PROMPT>

FDF 파일, XFDF 파일 또는 표준 입력의 데이터를 사용하여 단일 입력 PDF의 양식 필드를 채웁니다. fill_form 뒤에 데이터 파일 이름을 입력하거나 -를 사용하여 아래와 같이 stdin을 통해 데이터를 전달합니다.

pdftk form.pdf fill_form data.fdf output form.filled.pdf

어떻게 하나요?

1. 필드 이름 추출

pdftk forms.pdf dump_data_fields

다음 항목이 포함된 목록이 삭제됩니다.

---
FieldType: Text
FieldName: Name_Last
FieldNameAlt: LAST
FieldFlags: 0
FieldJustification: Left
---

2. fdf파일 생성

fdf- 문서는 양식 필러입니다. 우리는 일반적인 표기법을 사용합니다

<< /T(FIELD_NAME)/V(FIELD_VALUE) >>

그리고 머리글과 바닥글을 추가해야 합니다.원천

%FDF-1.2
1 0 obj<</FDF<< /Fields[
<< /T (Name_Last) /V (Smith) >>
<< /T (Name_First) /V (John) >>
] >> >>
endobj
trailer
<</Root 1 0 R>>
%%EOF

다른 이름으로 저장하려면input.fdf

3. 문서 작성

pdftk forms.pdf fill_form input.fdf output filled.pdf

4. 다시 확인하고 싶으신가요?

pdftk filled.pdf dump_data_fields

---
FieldType: Text
FieldName: Name_Last
FieldNameAlt: LAST
FieldFlags: 0
FieldValue: Smith
FieldJustification: Left
---

그래서 성이 파일에 기록됩니다.

5. 추가 처리

라디오 버튼의 경우 값은 -entries 중 하나이고 FieldStateOption, 확인란의 경우 V(Yes)및 을 사용합니다 /V(Off).


한 줄씩 쿼리 유형을 더 만들고 싶다면 필드 유형과 이름을 읽고 입력하라는 메시지를 표시한 다음 자동으로 파일을 생성하는 스크립트를 둘러싸는 것이 좋습니다 fdf. 그러나 이것은 그 자체로 작은 프로젝트입니다.

아니면 당신이 좋아할 수도 있습니다xfdf-형식(참조)더 나은 것. xml-style 항목을 기반으로 합니다 .

관련 정보