Operasi Kandungan
Operasi Kandungan
Halaman PDF dipaparkan oleh satu urutan operator yang disimpan dalam aliran kandungan.
Aspose.PDF FOSS for .NET mendedahkan operator-operator ini melalui OperatorCollection
pada setiap Page, dan menyediakan ContentStreamBuilder untuk membina kandungan baru
secara programatik.
Membaca operator aliran kandungan
Setiap Page mempunyai sifat Contents yang mengembalikan OperatorCollection. Iterasikan ia 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());
}Membina aliran kandungan
ContentStreamBuilder menyediakan API yang lancar untuk membina urutan operator content-stream termasuk pengurusan keadaan-grafik, pembinaan laluan, output teks, dan tetapan 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();Keadaan grafik
GraphicsState menjejaki matriks transformasi semasa, keadaan teks, dan nilai warna semasa operator dilaksanakan. 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 menetapkan warna isi dan warna garis masing-masing. Mereka menerima komponen RGB, CMYK, atau skala kelabu.
// 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 memaparkan rentetan teks pada kedudukan teks semasa menggunakan fon dan saiz semasa daripada keadaan grafik.
var textOp = new ShowText("Hello, PDF!");SetTextMatrix menempatkan teks dengan mendefinisikan matriks transformasi untuk ruang teks.
Keadaan grafik lanjutan
ExtGState mengawal sifat rendering lanjutan seperti isi dan stroke alpha (ketelusan) dan blend mode.
Petua dan Amalan Terbaik
- Sentiasa padankan
SaveState/RestoreState(atau operatorq/Q) untuk mengelakkan kerosakan pada timbunan keadaan grafik. - Gunakan
ContentStreamBuilderuntuk kandungan baru daripada membina objek operator secara manual. - Periksa
OperatorCollectiondalam mod baca sahaja sebelum mengubah — urutan operator yang tidak dijangka boleh menyebabkan masalah rendering. - Operator warna mesti sepadan dengan ruang warna semasa (RGB, CMYK, atau skala kelabu).
- Gunakan
SetAdvancedColoruntuk ruang warna berasaskan corak dan ICC.
Isu Umum
| Issue | Cause | Fix |
|---|---|---|
| Teks tidak kelihatan selepas menambah operator | Tiada fon ditetapkan dalam keadaan teks | Tambah operator SetFont sebelum ShowText |
| Warna muncul salah | Tidak sepadan ruang warna (RGB vs CMYK) | Gunakan operator yang sepadan dengan ruang warna aktif |
| Tumpukan keadaan grafik melimpah | Pasangan Save / Restore tidak seimbang | Pastikan setiap SaveState mempunyai padanan RestoreState |
| Kandungan muncul pada kedudukan yang salah | Transformasi matriks hilang atau tidak betul | Sahkan nilai SetMatrix atau ConcatMatrix |
Soalan Lazim
Apakah aliran kandungan PDF?
Aliran kandungan adalah satu urutan operator yang menerangkan cara untuk memaparkan halaman — melukis laluan, meletakkan teks, menetapkan warna, dan mengurus keadaan grafik.
Bolehkah saya menambah kandungan baru pada halaman yang sedia ada?
Ya. Akses page.Contents dan tambahkan operator baru, atau gunakan ContentStreamBuilder untuk membina satu urutan dan menambahkannya.
Bagaimana saya membuat teks telus?
Gunakan ExtGState untuk menetapkan alfa isi (ca) kepada nilai antara 0 (sepenuhnya telus) dan 1 (sepenuhnya legap).
Ringkasan Rujukan API
| Kelas / Kaedah | Keterangan |
|---|---|
OperatorCollection | Urutan operator aliran‑kandungan pada halaman |
ContentStreamBuilder | Pembina beralir untuk membina urutan operator |
ContentStreamBuilder.SaveState | Tolak keadaan grafik semasa ke atas timbunan |
ContentStreamBuilder.RestoreState | Keluarkan keadaan grafik dari timbunan |
ContentStreamBuilder.SetFillColor | Tetapkan warna isi dalam ruang warna semasa |
ContentStreamBuilder.SetMatrix | Terapkan transformasi koordinat |
GraphicsState | Menjejaki matriks transformasi, warna, dan keadaan teks |
SetColor | Operator yang menetapkan warna tidak‑garis (isi) |
SetColorStroke | Operator yang menetapkan warna garisan |
SetAdvancedColor | Operator untuk ruang warna berasaskan corak / ICC |
ShowText | Operator yang memaparkan rentetan teks |
SetTextMatrix | Operator yang menempatkan teks melalui matriks |
ExtGState | Keadaan grafik lanjutan (alfa, mod campuran) |