Memodifikasi AcroForm

Pemeliharaan Form sering melibatkan pengeditan pada tingkat bidang serta pembersihan sumber daya halaman terkait formulir.

Menghapus teks dalam sumber daya formulir yang disematkan

Gunakan contoh ini ketika konten formulir Typewriter harus dikosongkan tanpa menghapus objek formulir itu sendiri.

  1. Buka PDF sumber Document.
  2. Iterasikan melalui sumber daya formulir halaman dan temukan formulir Typewriter.
  3. Bersihkan fragmen teks yang diserap dan simpan dokumen.
public static void clearTextInForm(Path inputFile, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        for (XForm form : document.getPages().get_Item(1).getResources().getForms()) {
            if ("Typewriter".equals(form.getIT()) && "Form".equals(form.getSubtype())) {
                TextFragmentAbsorber absorber = new TextFragmentAbsorber();
                absorber.visit(form);

                for (TextFragment fragment : absorber.getTextFragments()) {
                    fragment.setText("");
                }
            }
        }
        document.save(outputFile.toString());
    }
}

Mengatur batas panjang bidang teks

Gunakan contoh ini ketika bidang teks hanya boleh menerima sejumlah karakter terbatas.

  1. Buat sebuah fasad FormEditor dan mengikat PDF sumber.
  2. Atur panjang maksimum untuk bidang target.
  3. Simpan dokumen yang diperbarui.
public static void setFieldLimit(Path inputFile, Path outputFile) {
    FormEditor form = new FormEditor();
    form.bindPdf(inputFile.toString());
    try {
        form.setFieldLimit("First Name", 15);
        form.save(outputFile.toString());
    } finally {
        form.close();
    }
}

Mendapatkan batas panjang bidang teks

Gunakan contoh ini ketika Anda perlu memeriksa panjang maksimum saat ini dari sebuah bidang teks.

  1. Buka PDF sumber Document.
  2. Akses bidang target dari koleksi formulir.
  3. Baca batas dari TextBoxField dan keluarkan.
public static void getFieldLimit(Path inputFile) {
    try (Document document = new Document(inputFile.toString())) {
        Field field = document.getForm().getFields()[0];
        if (field instanceof TextBoxField textBoxField) {
            System.out.println("Limit: " + textBoxField.getMaxLen());
        }
    }
}

Mengubah font bidang formulir

Gunakan contoh ini ketika bidang teks yang ada harus menggunakan font atau tampilan yang berbeda.

  1. Buka PDF sumber Document.
  2. Akses TextBoxField target dan atur tampilan default baru.
  3. Simpan PDF yang diperbarui.
public static void setFormFieldFont(Path inputFile, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        Field field = document.getForm().getFields()[0];
        if (field instanceof TextBoxField textBoxField) {
            textBoxField.setDefaultAppearance(new DefaultAppearance(
                    FontRepository.findFont("Calibri"), 10, com.aspose.pdf.Color.getBlack().toRgb()));
        }

        document.save(outputFile.toString());
    }
}

Menghapus bidang formulir berdasarkan nama

Gunakan contoh ini ketika bidang tertentu harus dihapus dari AcroForm.

  1. Buka PDF sumber Document.
  2. Hapus bidang target dari form berdasarkan namanya.
  3. Simpan dokumen yang diperbarui.
public static void deleteFormField(Path inputFile, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        document.getForm().delete("First Name");
        document.save(outputFile.toString());
    }
}