Operacije sadržaja

Operacije sadržaja

Operacije sadržaja

PDF stranice se renderiraju nizom operatora pohranjenih u sadržajni tok.
Aspose.PDF FOSS for .NET izlaže te operatore putem OperatorCollection
na svakom Page, i pruža ContentStreamBuilder za konstruiranje novog
sadržaja programatski.


Čitanje operatora sadržajnog toka

Svaki Page ima svojstvo Contents koje vraća OperatorCollection. Prođite kroz njega kako biste pregledali svaki operator.

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

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

Izgradnja tokova sadržaja

ContentStreamBuilder pruža fluent API za izgradnju sekvenci operatora content‑stream uključujući upravljanje grafičkim stanjem, konstrukciju putanja, ispis teksta i postavke boja.

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();

Grafičko stanje

GraphicsState prati trenutnu matricu transformacije, stanje teksta i vrijednosti boja dok se operatori izvršavaju. Ključne operacije:

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

Operatori boja

SetColor i SetColorStroke postavljaju boje ispune i poteza, redom. Prihvaćaju RGB, CMYK ili komponente u sivim tonovima.

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

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

Tekstualni operatori

ShowText iscrtava niz teksta na trenutnoj tekstualnoj poziciji koristeći trenutni font i veličinu iz grafičkog stanja.

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

SetTextMatrix pozicionira tekst definirajući transformacijsku matricu za tekstualni prostor.


Prošireno grafičko stanje

ExtGState kontrolira napredna svojstva renderiranja poput fill i stroke, alfa (transparentnost) i blend mode.


Savjeti i najbolje prakse

  • Uvijek uparite SaveState / RestoreState (ili q / Q operatore) kako biste izbjegli oštećenje stoga stanja grafike.
  • Koristite ContentStreamBuilder za novi sadržaj umjesto ručnog stvaranja objekata operatora.
  • Pregledajte OperatorCollection samo za čitanje prije izmjene — neočekivani redoslijed operatora može uzrokovati probleme s prikazom.
  • Operatori boje moraju odgovarati trenutnom prostoru boja (RGB, CMYK ili sivu skalu).
  • Koristite SetAdvancedColor za uzorke i ICC‑bazirane prostore boja.

Uobičajeni problemi

ProblemUzrokRješenje
Tekst nije vidljiv nakon dodavanja operatoraNije postavljen font u stanju tekstaDodajte operator SetFont prije ShowText
Boje su pogrešneNeusklađenost bojnog prostora (RGB vs CMYK)Koristite operator koji odgovara aktivnom prostoru boja
Preljev stoga grafičkog stanjaNeuravnoteženi parovi Save / RestoreOsigurajte da svaki SaveState ima odgovarajući RestoreState
Sadržaj se prikazuje na pogrešnoj pozicijiNedostaje ili je netočna matrica transformacijeProvjerite vrijednosti SetMatrix ili ConcatMatrix

FAQ

Što je PDF content stream?

Strujni sadržaj je niz operatora koji opisuju kako prikazati stranicu — crtanje putanja, postavljanje teksta, postavljanje boja i upravljanje grafičkim stanjem.

Mogu li dodati novi sadržaj na postojeću stranicu?

Da. Pristupite page.Contents i dodajte nove operatore, ili upotrijebite ContentStreamBuilder za izgradnju sekvence i dodajte je.

Kako učiniti tekst prozirnim?

Koristite ExtGState za postavljanje alfa vrijednosti ispune (ca) na vrijednost između 0 (potpuno proziran) i 1 (potpuno neprozirno).


Sažetak API referencije

Klasa / MetodaOpis
OperatorCollectionNiz operatora sadržajnog toka na stranici
ContentStreamBuilderFluidni builder za izgradnju sekvenci operatora
ContentStreamBuilder.SaveStateGuranje trenutnog grafičkog stanja na stog
ContentStreamBuilder.RestoreStateUklanjanje grafičkog stanja sa stoga
ContentStreamBuilder.SetFillColorPostavljanje boje ispune u trenutnom kolor prostoru
ContentStreamBuilder.SetMatrixPrimjena koordinatne transformacije
GraphicsStatePraćenje matrice transformacije, boje i stanja teksta
SetColorOperator koji postavlja boju ne‑crtanja (ispune)
SetColorStrokeOperator koji postavlja boju crtanja
SetAdvancedColorOperator za uzorke / ICC‑bazirane kolor prostore
ShowTextOperator koji iscrtava tekstualni niz
SetTextMatrixOperator koji pozicionira tekst putem matrice
ExtGStateProšireno grafičko stanje (alpha, način miješanja)

Vidi također

 Hrvatski