Memodifikasi AcroForm

Mendapatkan atau Mengatur Batas Bidang

Metode FormEditor SetFieldLimit(field, limit) memungkinkan Anda mengatur batas bidang, jumlah maksimum karakter yang dapat dimasukkan ke dalam bidang.

void SetFieldLimitDom() {
    String _dataDir("C:\\Samples\\");
    // Membuka dokumen
    auto document = MakeObject<Document>(_dataDir + u"GetValuesFromAllFields.pdf");
    auto textBoxField = System::DynamicCast<TextBoxField>(document->get_Form()->idx_get(u"textbox1"));
    textBoxField->set_MaxLen(15);
    document->Save(_dataDir + u"GetValuesFromAllFields.pdf");
}

Demikian pula, Aspose.PDF memiliki metode yang mendapatkan batas bidang menggunakan pendekatan DOM. Berikut adalah potongan kode yang menunjukkan langkah-langkahnya.

void GetFieldLimitDom() {
    String _dataDir("C:\\Samples\\");
    // Buka dokumen
    auto document = MakeObject<Document>(_dataDir + u"GetValuesFromAllFields.pdf");
    auto textBoxField = System::DynamicCast<TextBoxField>(document->get_Form()->idx_get(u"textbox1"));
    Console::WriteLine(u"Batas: {0}", textBoxField->get_MaxLen());        
}

Anda juga dapat mengatur dan mendapatkan nilai yang sama menggunakan namespace Aspose.PDF.Facades dengan menggunakan potongan kode berikut.

using namespace System;
using namespace Aspose::Pdf;
using namespace Aspose::Pdf::Forms;

void SetFieldLimitFacade(){
    String _dataDir("C:\\Samples\\");
    // Menambahkan Field dengan batas
    auto form = MakeObject<Aspose::Pdf::Facades::FormEditor>(_dataDir + u"input.pdf", _dataDir + u"SetFieldLimit_out.pdf");
    form->SetFieldLimit(u"textbox1", 15);
    form->Save();
}
void GetFieldLimitFacade(){
    String _dataDir("C:\\Samples\\");
    // Menambahkan Field dengan batas
    auto form = MakeObject<Aspose::Pdf::Facades::Form>(_dataDir + u"input.pdf");
    Console::WriteLine(u"Batas: {0}", form->GetFieldLimit(u"textbox1"));
}

Atur Font Kustom untuk Bidang Formulir

Bidang formulir dalam file PDF Adobe dapat dikonfigurasi untuk menggunakan font default tertentu. Pada versi awal Aspose.PDF, hanya 14 font default yang didukung. Rilis selanjutnya memungkinkan pengembang untuk menerapkan font apa pun. Untuk mengatur dan memperbarui font default yang digunakan untuk bidang formulir, gunakan kelas DefaultAppearance (Font font, double size, Color color). Kelas ini dapat ditemukan di bawah namespace Aspose.PDF.InteractiveFeatures. Untuk menggunakan objek ini, gunakan properti DefaultAppearance dari kelas Field.

Cuplikan kode berikut menunjukkan cara mengatur font default untuk bidang formulir PDF.

void SetCustomFontForField() {

    String _dataDir("C:\\Samples\\");

    // Buka dokumen
    auto document = new Document(_dataDir + u"FormFieldFont14.pdf");

    // Dapatkan bidang formulir tertentu dari dokumen
    auto textBoxField = System::DynamicCast<TextBoxField>(document->get_Form()->idx_get(u"textbox1"));

    // Buat objek font
    auto font = Aspose::Pdf::Text::FontRepository::FindFont(u"ComicSansMS");

    // Atur informasi font untuk bidang formulir

    textBoxField->set_DefaultAppearance(MakeObject<Aspose::Pdf::Annotations::DefaultAppearance>(font, 10, System::Drawing::Color::get_Black()));

    // Simpan dokumen yang diperbarui
    document->Save(_dataDir + u"FormFieldFont14.pdf");
}

Hapus bidang dari formulir yang ada

Semua bidang formulir terdapat dalam koleksi Form dari objek Document. Koleksi ini menyediakan berbagai metode yang mengelola bidang formulir, termasuk metode Delete. Jika Anda ingin menghapus bidang tertentu, berikan nama bidang sebagai parameter ke metode Delete dan kemudian simpan dokumen PDF yang telah diperbarui. Cuplikan kode berikut menunjukkan cara menghapus bidang tertentu dari dokumen PDF.

void DeleteFormField() {    
    String _dataDir("C:\\Samples\\");

    // Buka dokumen
    auto document = new Document(_dataDir + u"DeleteFormField.pdf");

    // Hapus bidang tertentu berdasarkan nama
    document->get_Form()->Delete(u"textbox1");
    
    // Simpan dokumen yang telah dimodifikasi
    document->Save(_dataDir + u"DeleteFormField_out.pdf");
}