Skip to content

API Document

Class Document (TcpdfNext\Core\Document) adalah entry point utama untuk membuat dokumen PDF. Class ini menyusun 12 trait, masing-masing menyumbangkan sekelompok method terkait. Semua method mutasi mengembalikan static untuk fluent chaining.

php
use TcpdfNext\Core\Document;

$pdf = Document::create()
    ->setTitle('Invoice')
    ->addPage()
    ->setFont('Helvetica', size: 12)
    ->cell(width: 0, height: 10, text: 'Hello World')
    ->save('/output/invoice.pdf');

HasMetadata

Method untuk mengatur metadata level dokumen (Title, Author, Subject, Keywords, Creator).

setTitle(string $title): static
Set judul dokumen (muncul di title bar PDF viewer dan XMP dc:title).
setAuthor(string $author): static
Set penulis dokumen (XMP dc:creator).
setSubject(string $subject): static
Set subjek dokumen (XMP dc:description).
setKeywords(string|array $keywords): static
Set kata kunci dokumen. Menerima string dipisahkan koma atau array string.
setCreator(string $creator): static
Set nama aplikasi pembuat (XMP xmp:CreatorTool). Default ke 'TCPDF-Next'.

HasPages

Method untuk menambah, menghapus, memindahkan, dan mengonfigurasi halaman.

addPage(?PageSize $pageSize = null, ?Orientation $orientation = null): static
Tambah halaman baru. Opsional override ukuran halaman dan orientasi default untuk halaman ini saja.
deletePage(int $pageNumber): static
Hapus halaman pada indeks 1-based yang diberikan. Melempar OutOfRangeException jika halaman tidak ada.
movePage(int $from, int $to): static
Pindahkan halaman dari satu posisi ke posisi lain. Kedua indeks 1-based.
copyPage(int $pageNumber): static
Duplikasi halaman dan tambahkan salinan setelah halaman terakhir.
setAutoPageBreak(bool $auto, float $margin = 0): static
Aktifkan atau nonaktifkan page break otomatis. Saat aktif, halaman baru ditambahkan ketika konten mencapai margin bawah dikurangi nilai margin yang diberikan.
setMargins(float $left, float $top, float $right = -1, float $bottom = -1): static
Set margin halaman dalam unit user. Jika right -1, mirror left. Jika bottom -1, mirror top.
setLeftMargin(float $margin): static
Set margin kiri saja.
setTopMargin(float $margin): static
Set margin atas saja.
setRightMargin(float $margin): static
Set margin kanan saja.
setCellPadding(float $padding): static
Set padding internal cell default dalam unit user.
setPageSize(PageSize $size): static
Set ukuran halaman default untuk halaman baru.
setOrientation(Orientation $orientation): static
Set orientasi halaman default untuk halaman baru.
pageCount(): int
Kembalikan jumlah total halaman dalam dokumen.
currentPage(): int
Kembalikan nomor halaman saat ini (1-based).
setPage(int $pageNumber): static
Pindahkan kursor ke halaman yang sudah ada.

HasTypography

Method untuk pemilihan font, ukuran, spasi, dan pengukuran string.

setFont(string $family, string $style = '', float $size = 0): static
Pilih font berdasarkan nama family. Style bisa '' (regular), 'B' (bold), 'I' (italic), atau 'BI'. Size 0 mempertahankan ukuran saat ini.
setFontSize(float $size): static
Set ukuran font dalam point.
setFontSpacing(float $spacing): static
Set spasi karakter ekstra dalam unit user.
setFontStretching(float $percent): static
Set penskalaan font horizontal sebagai persentase (100 = normal).
getStringWidth(string $text, string $family = '', string $style = '', float $size = 0): float
Hitung lebar string dalam unit user menggunakan pengaturan font yang diberikan (atau saat ini).
getCharWidth(string $char): float
Kembalikan lebar karakter tunggal dalam unit user.
getNumberOfLines(string $text, float $width): int
Estimasi berapa baris yang akan ditempati teks pada lebar yang diberikan.

HasColors

Method untuk mengatur warna draw, fill, dan teks dengan transparansi alpha opsional.

setDrawColor(int $r, int $g = -1, int $b = -1): static
Set warna stroke (draw). Berikan satu nilai untuk grayscale atau tiga nilai untuk RGB.
setFillColor(int $r, int $g = -1, int $b = -1): static
Set warna fill untuk bentuk dan background cell.
setTextColor(int $r, int $g = -1, int $b = -1): static
Set warna teks.
setAlpha(float $alpha, string $blendMode = 'Normal'): static
Set transparansi alpha (0.0 = sepenuhnya transparan, 1.0 = sepenuhnya opaque) dan blend mode opsional.
setDrawColorObject(Color $color): static
Set warna stroke menggunakan value object Color (mendukung RGB, CMYK, Gray, Spot).
setFillColorObject(Color $color): static
Set warna fill menggunakan value object Color.
setTextColorObject(Color $color): static
Set warna teks menggunakan value object Color.

HasTextOutput

Method untuk me-render konten teks ke halaman.

cell(float $width, float $height = 0, string $text = '', string|int $border = 0, int $ln = 0, Alignment $align = Alignment::Left, bool $fill = false, string $link = ''): static
Cetak cell satu baris. Cell bisa memiliki border, background fill, dan hyperlink opsional.
multiCell(float $width, float $height, string $text, string|int $border = 0, Alignment $align = Alignment::Justified, bool $fill = false, int $maxLines = 0): static
Cetak blok teks multi-baris dengan pembungkusan baris otomatis.
text(float $x, float $y, string $text): static
Tempatkan string teks pada koordinat persis. Tanpa pembungkusan baris atau batas cell.
write(float $height, string $text, string $link = ''): static
Tulis teks mengalir dari posisi saat ini. Mendukung hyperlink inline.
writeHtml(string $html, bool $lineBreak = true, bool $fill = false, bool $resetStyles = false, string $align = ''): static
Render string HTML dengan dukungan CSS. Mendukung tag HTML umum, tabel, list, dan style inline.
writeHtmlCell(float $width, float $height, float $x, float $y, string $html, string|int $border = 0, int $ln = 0, bool $fill = false): static
Render HTML di dalam cell yang diposisikan.
ln(float $height = 0): static
Sisipkan line break. Jika height 0, gunakan tinggi cell terakhir yang dicetak.

HasDrawing

Method untuk menggambar garis, bentuk, dan panah.

line(float $x1, float $y1, float $x2, float $y2): static
Gambar garis lurus antara dua titik.
rect(float $x, float $y, float $w, float $h, string $style = ''): static
Gambar persegi panjang. Style: '' (stroke), 'F' (fill), 'DF' (stroke + fill).
roundedRect(float $x, float $y, float $w, float $h, float $r, string $roundCorner = '1111', string $style = ''): static
Gambar persegi panjang dengan sudut membulat. Bitmask roundCorner mengontrol sudut mana yang dibulatkan.
circle(float $x, float $y, float $r, string $style = '', array $angles = [0, 360]): static
Gambar lingkaran (atau busur) dengan pusat (x, y) dan radius r.
ellipse(float $x, float $y, float $rx, float $ry, float $angle = 0, string $style = ''): static
Gambar elips dengan pusat (x, y), radius horizontal rx, dan radius vertikal ry.
polygon(array $points, string $style = ''): static
Gambar polygon dari array pasangan koordinat [x, y].
arrow(float $x1, float $y1, float $x2, float $y2, int $headStyle = 0, float $armSize = 5, int $armAngle = 15): static
Gambar garis dengan kepala panah.
curve(float $x0, float $y0, float $x1, float $y1, float $x2, float $y2, float $x3, float $y3, string $style = ''): static
Gambar kurva Bezier kubik.
setLineWidth(float $width): static
Set lebar garis untuk operasi stroke.
setLineCap(int $style): static
Set style line cap: 0 (butt), 1 (round), 2 (square).
setLineJoin(int $style): static
Set style line join: 0 (miter), 1 (round), 2 (bevel).

HasTransforms

Method untuk transformasi sistem koordinat (disimpan sebagai stack).

startTransform(): static
Simpan graphics state saat ini. Harus dipasangkan dengan stopTransform().
stopTransform(): static
Kembalikan graphics state yang sebelumnya disimpan.
rotate(float $angle, float $x = null, float $y = null): static
Putar operasi gambar berikutnya sebesar sudut yang diberikan (derajat) di sekitar titik (x, y).
scale(float $sx, float $sy, float $x = null, float $y = null): static
Skalakan operasi gambar berikutnya. 100 = tidak ada perubahan, 200 = ukuran ganda.
translate(float $tx, float $ty): static
Terjemahkan (geser) operasi gambar berikutnya sebesar (tx, ty) unit user.
skew(float $angleX, float $angleY, float $x = null, float $y = null): static
Geser operasi gambar berikutnya sebesar sudut yang diberikan (derajat).
mirror(string $axis, float $x = null, float $y = null): static
Mirror operasi gambar berikutnya sepanjang sumbu yang diberikan ('H' horizontal, 'V' vertikal).

HasLayout

Method untuk header, footer, kolom, dan mode booklet.

setHeaderCallback(callable $callback): static
Daftarkan callback yang dipanggil di atas setiap halaman. Menerima instance Document.
setFooterCallback(callable $callback): static
Daftarkan callback yang dipanggil di bawah setiap halaman. Menerima instance Document.
setColumnsArray(array $columns): static
Definisikan layout multi-kolom. Setiap entry adalah array asosiatif dengan key 'width' dan opsional 'margin'.
selectColumn(int $column = 0): static
Pindahkan kursor ke kolom yang ditentukan (0-based).
setBooklet(bool $enable, float $innerMargin = -1, float $outerMargin = -1): static
Aktifkan mode booklet (saddle-stitch) dengan margin dalam dan luar yang bisa dikonfigurasi.
setPrintHeader(bool $print): static
Aktifkan atau nonaktifkan header di halaman berikutnya.
setPrintFooter(bool $print): static
Aktifkan atau nonaktifkan footer di halaman berikutnya.

HasNavigation

Method untuk bookmark, daftar isi, link, anotasi, dan lampiran file.

bookmark(string $title, int $level = 0, float $y = -1, int $page = 0, string $style = '', Color $color = null): static
Tambah bookmark (entry outline). Level 0 adalah level teratas; nilai lebih tinggi membuat anak bersarang.
addTOC(int $page = 0, string $numberFormat = '', string $filler = '.'): static
Hasilkan daftar isi dari semua bookmark dan sisipkan di halaman yang diberikan.
addLink(): int
Buat destinasi link internal dan kembalikan identifier-nya.
setLink(int $linkId, float $y = 0, int $page = -1): static
Set destinasi untuk link internal yang sebelumnya dibuat.
annotation(float $x, float $y, float $w, float $h, string $text, array $options = []): static
Tambah anotasi teks pada persegi panjang yang diberikan.
addFileAttachment(string $filePath, string $description = '', string $name = ''): static
Lampirkan file ke dokumen. Mendukung associated file PDF/A-3.

HasInteractive

Method untuk field form AcroForm dan JavaScript.

textField(string $name, float $x, float $y, float $w, float $h, array $options = []): static
Tambah field input teks pada posisi yang diberikan.
checkboxField(string $name, float $x, float $y, float $size = 10, bool $checked = false): static
Tambah field checkbox.
radioField(string $name, float $x, float $y, float $size = 10, array $options = []): static
Tambah field radio button sebagai bagian dari grup bernama.
listboxField(string $name, float $x, float $y, float $w, float $h, array $items, array $options = []): static
Tambah field seleksi listbox.
comboboxField(string $name, float $x, float $y, float $w, float $h, array $items, array $options = []): static
Tambah field dropdown combobox.
buttonField(string $name, float $x, float $y, float $w, float $h, string $caption, string $action = ''): static
Tambah field push button dengan aksi JavaScript opsional.
includeJS(string $script): static
Sematkan aksi JavaScript level dokumen. Dieksekusi saat dokumen dibuka.

HasSecurity

Method untuk enkripsi dan tanda tangan digital.

setProtection(array $permissions = [], string $userPassword = '', string $ownerPassword = '', int $mode = 3): static
Enkripsi dokumen dengan AES-256 (mode 3). Permission: 'print', 'copy', 'modify', 'annot-forms', dll.
setSignature(string $certFile, string $privateKeyFile, string $password = '', string $extracertsFile = '', int $certType = 2, array $info = []): static
Terapkan tanda tangan digital PAdES. Gunakan certType 2 untuk file PKCS#12 (.p12/.pfx).

HasOutput

Method untuk me-render PDF final.

save(string $path): bool
Tulis PDF ke file. Mengembalikan true jika berhasil.
output(OutputDestination $destination = OutputDestination::String, string $filename = 'doc.pdf', string $path = ''): string|bool
Render PDF ke destinasi yang dipilih: String (kembalikan binary), File, Inline (browser), atau Download.
toString(): string
Alias convenience untuk output(OutputDestination::String). Mengembalikan binary PDF mentah.

Lihat Juga

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