Operasi Konten

Operasi Konten

Operasi Konten

Halaman PDF dirender oleh urutan operator yang disimpan dalam aliran konten. Aspose.PDF FOSS for .NET mengekspos operator-operator ini melalui OperatorCollection pada setiap Page, dan menyediakan ContentStreamBuilder untuk membangun konten baru secara programatik.


Membaca operator aliran konten

Setiap Page memiliki properti Contents yang mengembalikan sebuah OperatorCollection. Iterasikan itu untuk memeriksa setiap operator.

using var doc = Document.Open(pdfBytes);
var page = doc.Pages[1];

foreach (var op in page.Contents)
{
    Console.WriteLine(op.ToString());
}

Membangun aliran konten

ContentStreamBuilder menyediakan API yang lancar untuk membangun urutan operator aliran‑konten termasuk manajemen keadaan‑grafik, konstruksi jalur, output teks, dan pengaturan warna.

var builder = new ContentStreamBuilder();
builder.SaveState();
builder.SetFillColor(1.0, 0.0, 0.0);  // Red fill
builder.SetMatrix(1, 0, 0, 1, 72, 700); // Translate
// ... add drawing or text operators
builder.RestoreState();

Status grafis

GraphicsState melacak matriks transformasi saat ini, status teks, dan nilai warna saat operator dijalankan. Operasi utama:

var gs = new GraphicsState();
gs.Save();
gs.ConcatMatrix(new Matrix(1, 0, 0, 1, 100, 200));
gs.Restore();

Operator warna

SetColor dan SetColorStroke mengatur warna isi dan garis tepi masing-masing. Mereka menerima komponen RGB, CMYK, atau skala abu‑abu.

// RGB fill color (blue)
var fill = new SetColor(0, 0, 1);

// RGB stroke color (red)
var stroke = new SetColorStroke(1, 0, 0);

operator teks

ShowText menampilkan string teks pada posisi teks saat ini menggunakan font dan ukuran saat ini dari keadaan grafik.

var textOp = new ShowText("Hello, PDF!");

SetTextMatrix memposisikan teks dengan mendefinisikan matriks transformasi untuk ruang teks.


Keadaan grafis yang diperluas

ExtGState mengontrol properti rendering lanjutan seperti isi dan garis alpha (transparansi) serta mode campuran.


Tips dan Praktik Terbaik

  • Selalu pasangkan SaveState / RestoreState (atau operator q / Q) untuk menghindari kerusakan pada stack status grafik.
  • Gunakan ContentStreamBuilder untuk konten baru daripada membuat objek operator secara manual.
  • Periksa OperatorCollection dalam mode baca-saja sebelum memodifikasi — urutan operator yang tidak terduga dapat menyebabkan masalah rendering.
  • Operator warna harus sesuai dengan ruang warna saat ini (RGB, CMYK, atau skala abu-abu).
  • Gunakan SetAdvancedColor untuk pola dan ruang warna berbasis ICC.

Masalah Umum

MasalahPenyebabSolusi
Teks tidak terlihat setelah menambahkan operatorTidak ada font yang diatur dalam status teksTambahkan operator SetFont sebelum ShowText
Warna muncul salahKetidaksesuaian ruang warna (RGB vs CMYK)Gunakan operator yang sesuai dengan ruang warna yang aktif
Tumpukan status grafis meluapPasangan Save / Restore tidak seimbangPastikan setiap SaveState memiliki RestoreState yang cocok
Konten muncul di posisi yang salahTransformasi matriks hilang atau tidak tepatVerifikasi nilai SetMatrix atau ConcatMatrix

FAQ

Apa itu aliran konten PDF?

Aliran konten adalah urutan operator yang menjelaskan cara merender halaman — menggambar jalur, menempatkan teks, mengatur warna, dan mengelola status grafis.

Apakah saya dapat menambahkan konten baru ke halaman yang sudah ada?

Ya. Akses page.Contents dan tambahkan operator baru, atau gunakan ContentStreamBuilder untuk membuat urutan dan menambahkannya.

Bagaimana cara membuat teks transparan?

Gunakan ExtGState untuk mengatur alpha isi (ca) ke nilai antara 0 (sepenuhnya transparan) dan 1 (sepenuhnya opak).


Ringkasan Referensi API

Kelas / MetodeDeskripsi
OperatorCollectionUrutan operator aliran konten pada halaman
ContentStreamBuilderBuilder fluens untuk membangun urutan operator
ContentStreamBuilder.SaveStateMendorong keadaan grafik saat ini ke tumpukan
ContentStreamBuilder.RestoreStateMengeluarkan keadaan grafik dari tumpukan
ContentStreamBuilder.SetFillColorMengatur warna isi dalam ruang warna saat ini
ContentStreamBuilder.SetMatrixMenerapkan transformasi koordinat
GraphicsStateMelacak matriks transformasi, warna, dan keadaan teks
SetColorOperator yang mengatur warna non-stroking (isi)
SetColorStrokeOperator yang mengatur warna stroking
SetAdvancedColorOperator untuk pola / ruang warna berbasis ICC
ShowTextOperator yang merender string teks
SetTextMatrixOperator yang memposisikan teks melalui matriks
ExtGStateKeadaan grafik yang diperluas (alpha, mode pencampuran)

Lihat Juga

 Bahasa Indonesia