Skip to content

Field Formulir

Modul Form (FormFieldManager, FormField) membuat field AcroForm interaktif di dalam PDF. Tipe field didefinisikan oleh enum FormFieldType: TEXT, PASSWORD, TEXTAREA, CHECKBOX, RADIO, LISTBOX, COMBOBOX, BUTTON. Semua method mengembalikan static, sehingga setiap panggilan bisa di-chain.

Referensi Cepat

MethodTipe Field
textField()Input teks satu baris
checkboxField()Toggle checkbox
radioField()Radio button (dikelompokkan)
listboxField()List yang bisa di-scroll
comboboxField()Selector dropdown
buttonField()Push button dengan aksi JavaScript opsional
flattenFields()Konversi semua field interaktif ke konten statis

Contoh Dasar

php
use Yeeefang\TcpdfNext\Core\Document;

$pdf = Document::create()
    ->addPage()
    ->setFont('Helvetica', '', 12)
    ->cell(0, 10, 'Formulir Pendaftaran', newLine: true)
    ->ln(5)

    // Text field
    ->cell(30, 8, 'Nama:')
    ->textField('name', 45, null, 80, 8, [
        'border'    => ['width' => 1],
        'maxLength' => 100,
    ])
    ->ln(12)

    // Email field
    ->cell(30, 8, 'Email:')
    ->textField('email', 45, null, 80, 8)
    ->ln(12)

    // Checkbox
    ->checkboxField('agree', 15, null, 5, 5)
    ->cell(0, 5, '  Saya setuju dengan ketentuan', newLine: true)
    ->ln(10)

    // Dropdown
    ->cell(30, 8, 'Negara:')
    ->comboboxField('country', 45, null, 60, 8, ['ID', 'US', 'UK', 'TW', 'JP', 'DE'])
    ->ln(12)

    // Tombol submit
    ->buttonField('submit', 45, null, 40, 10, 'Submit', 'submitForm("https://example.com/submit")');

Field Teks dan Checkbox

php
$pdf->textField(string $name, float $x, float $y, float $w, float $h, array $prop = []);
$pdf->checkboxField(string $name, float $x, float $y, float $w, float $h, bool $checked = false);

Berikan null untuk $y untuk menggunakan posisi kursor vertikal saat ini.

Field Radio Button

php
$pdf->radioField(string $name, float $x, float $y, float $w, float $h, array $prop = []);

Radio button dengan $name yang sama membentuk grup yang saling eksklusif:

php
$pdf->cell(30, 8, 'Jenis Kelamin:')
    ->radioField('gender', 45, null, 5, 5, ['value' => 'male'])
    ->cell(10, 5, ' L')
    ->radioField('gender', 65, null, 5, 5, ['value' => 'female'])
    ->cell(10, 5, ' P');

Field List, Combo Box, dan Button

php
$pdf->listboxField(string $name, float $x, float $y, float $w, float $h, array $values, array $prop = []);
$pdf->comboboxField(string $name, float $x, float $y, float $w, float $h, array $values, array $prop = []);
$pdf->buttonField(string $name, float $x, float $y, float $w, float $h, string $caption, string $action = '');

listboxField() me-render list multi-baris yang bisa di-scroll. comboboxField() me-render dropdown satu baris. buttonField() membuat push button dengan string aksi JavaScript opsional.

php
$pdf->buttonField('reset', 15, null, 40, 10, 'Reset', 'this.resetForm()')
    ->buttonField('print', 60, null, 40, 10, 'Cetak', 'this.print()');

Properti Field

Array $prop mengontrol tampilan dan perilaku field:

KeyTipeDeskripsi
borderarrayStyle border dengan key width, color, style
bgcolorarrayWarna background sebagai [r, g, b]
fontstringNama font family
fontSizefloatUkuran font dalam poin
alignmentstringAlignment teks: left, center, right
maxLengthintJumlah karakter maksimum (text field)
readonlyboolCegah pengeditan pengguna
requiredboolTandai sebagai wajib untuk validasi formulir
valuestringNilai default / awal

Form Flattening

Flattening mengonversi semua field interaktif menjadi konten statis yang tidak bisa diedit. Ini berguna untuk mengarsipkan formulir yang sudah diisi atau menghasilkan PDF final read-only.

php
$pdf->flattenFields();  // Konversi semua field formulir ke konten statis

Setelah flattening, nilai field menjadi teks permanen. Field tidak bisa lagi diedit di PDF viewer.

Didistribusikan di bawah lisensi LGPL-3.0-or-later.