양식 데이터 가져오기 및 내보내기

Aspose.PDF for Java는 대화형 양식에 대한 몇 가지 일반적인 데이터 교환 형식을 지원합니다.

XML에서 양식 데이터 가져오기

양식 값이 XML 파일에 저장되어 있고 PDF 양식에 적용되어야 하는 경우 이 예를 사용하세요.

  1. Form Facade를 생성하고 소스 PDF를 바인딩하세요.
  2. XML 입력 스트림을 열고 데이터를 양식으로 가져오세요.
  3. 업데이트된 PDF 문서를 저장하세요.
public static void importDataFromXml(Path inputFile, Path dataFile, Path outputFile) throws Exception {
    Form form = new Form();
    try (InputStream stream = Files.newInputStream(dataFile)) {
        form.bindPdf(inputFile.toString());
        form.importXml(stream);
        form.save(outputFile.toString());
    } finally {
        form.close();
    }
}

양식 데이터를 XML로 내보내기

현재 AcroForm 값을 XML 형식으로 저장해야 하는 경우 이 예를 사용하세요.

  1. Form Facade를 생성하고 소스 PDF를 바인딩하세요.
  2. XML 파일의 출력 스트림을 여세요.
  3. 양식 데이터를 XML로 내보내세요.
public static void exportDataToXml(Path inputFile, Path outputFile) throws Exception {
    Form form = new Form();
    try (OutputStream stream = Files.newOutputStream(outputFile)) {
        form.bindPdf(inputFile.toString());
        form.exportXml(stream);
    } finally {
        form.close();
    }
}

FDF에서 양식 데이터 가져오기

양식 값이 FDF 교환 형식으로 도착하는 경우 이 예를 사용하세요.

  1. Form Facade를 생성하고 소스 PDF를 바인딩하세요.
  2. FDF 입력 스트림을 열고 데이터를 가져오세요.
  3. 채워진 PDF 문서를 저장하세요.
public static void importDataFromFdf(Path inputFile, Path dataFile, Path outputFile) throws Exception {
    Form form = new Form();
    try (InputStream stream = Files.newInputStream(dataFile)) {
        form.bindPdf(inputFile.toString());
        form.importFdf(stream);
        form.save(outputFile.toString());
    } finally {
        form.close();
    }
}

양식 데이터를 FDF로 내보내기

PDF 양식 값을 FDF 파일로 공유해야 하는 경우 이 예를 사용하세요.

  1. Form Facade를 생성하고 소스 PDF를 바인딩하세요.
  2. FDF 파일의 출력 스트림을 여세요.
  3. 양식 데이터를 FDF 형식으로 내보내세요.
public static void exportDataToFdf(Path inputFile, Path outputFile) throws Exception {
    Form form = new Form();
    try (OutputStream stream = Files.newOutputStream(outputFile)) {
        form.bindPdf(inputFile.toString());
        form.exportFdf(stream);
    } finally {
        form.close();
    }
}

XFDF에서 양식 데이터 가져오기

양식 데이터가 XFDF 형식으로 제공되어 PDF로 병합되어야 하는 경우 이 예를 사용하세요.

  1. Form Facade를 생성하고 소스 PDF를 바인딩하세요.
  2. XFDF 입력 스트림을 열고 값을 가져오세요.
  3. 업데이트된 PDF 문서를 저장하세요.
public static void importDataFromXfdf(Path inputFile, Path dataFile, Path outputFile) throws Exception {
    Form form = new Form();
    try (InputStream stream = Files.newInputStream(dataFile)) {
        form.bindPdf(inputFile.toString());
        form.importXfdf(stream);
        form.save(outputFile.toString());
    } finally {
        form.close();
    }
}

양식 데이터를 XFDF로 내보내기

AcroForm 값에 대한 XML 기반 교환 파일이 필요한 경우 이 예를 사용하세요.

  1. Form Facade를 생성하고 소스 PDF를 바인딩하세요.
  2. XFDF 파일의 출력 스트림을 여세요.
  3. 현재 양식 값을 XFDF로 내보내세요.
public static void exportDataToXfdf(Path inputFile, Path outputFile) throws Exception {
    Form form = new Form();
    try (OutputStream stream = Files.newOutputStream(outputFile)) {
        form.bindPdf(inputFile.toString());
        form.exportXfdf(stream);
    } finally {
        form.close();
    }
}

양식 필드를 JSON으로 추출

양식 값을 경량 JSON 표현으로 내보내야 하는 경우 이 예를 사용하세요.

  1. Form 파사드가 포함된 PDF를 여세요.
  2. 필드 이름을 반복하고 해당 값을 JSON 텍스트로 직렬화하세요.
  3. JSON 콘텐츠를 대상 파일에 쓰세요.
public static void extractFormFieldsToJson(Path inputFile, Path outputFile) throws Exception {
    Form form = new Form(inputFile.toString());
    try {
        StringBuilder json = new StringBuilder();
        json.append("{\n");
        String[] fieldNames = form.getFieldNames();
        for (int i = 0; i < fieldNames.length; i++) {
            String fieldName = fieldNames[i];
            json.append("    \"").append(escapeJson(fieldName)).append("\": \"")
                    .append(escapeJson(form.getField(fieldName))).append("\"");
            if (i < fieldNames.length - 1) {
                json.append(",");
            }
            json.append("\n");
        }
        json.append("}\n");
        Files.writeString(outputFile, json.toString());
    } finally {
        form.close();
    }
}

JSON 추출 도우미 재사용

기본 JSON 내보내기 루틴에 위임하는 전용 래퍼 메서드가 필요한 경우 이 예제를 사용하세요.

  1. 소스 PDF 및 출력 경로를 사용하여 기존 JSON 추출 도우미를 호출하세요.
  2. 직렬화 코드를 복제하지 않고 동일한 추출 논리를 재사용하세요.
public static void extractFormFieldsToJsonDoc(Path inputFile, Path outputFile) throws Exception {
    extractFormFieldsToJson(inputFile, outputFile);
}