Indholdsoperationer
Indholdsoperationer
PDF-sider renderes af en sekvens af operatorer gemt i en indholdsstrøm.
Aspose.PDF FOSS for .NET eksponerer disse operatorer gennem OperatorCollection
på hver Page, og leverer ContentStreamBuilder til at konstruere nyt
indhold programmatisk.
Læser indholdsstrøm-operatorer
Hver Page har en Contents-egenskab, der returnerer en OperatorCollection. Iterer den for at inspicere hver operator.
using var doc = Document.Open(pdfBytes);
var page = doc.Pages[1];
foreach (var op in page.Contents)
{
Console.WriteLine(op.ToString());
}Opbygning af indholdsstrømme
ContentStreamBuilder leverer et flydende API til at konstruere indholdsstrøm-operatorsekvenser inklusive styring af grafisk tilstand, stikonstruering, tekstoutput og farveindstillinger.
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();Grafisk tilstand
GraphicsState sporer den aktuelle transformationsmatrix, teksttilstand og farveværdier, mens operatorer udføres. Nøgleoperationer:
var gs = new GraphicsState();
gs.Save();
gs.ConcatMatrix(new Matrix(1, 0, 0, 1, 100, 200));
gs.Restore();Farveoperatorer
SetColor og SetColorStroke indstiller henholdsvis udfyldnings- og stregfarver. De accepterer RGB-, CMYK- eller gråskala‑komponenter.
// RGB fill color (blue)
var fill = new SetColor(0, 0, 1);
// RGB stroke color (red)
var stroke = new SetColorStroke(1, 0, 0);Tekstoperatorer
ShowText gengiver en tekststreng på den aktuelle tekstposition ved at bruge den aktuelle skrifttype og størrelse fra grafisk tilstand.
var textOp = new ShowText("Hello, PDF!");SetTextMatrix placerer tekst ved at definere en transformationsmatrix for tekstrum.
Udvidet grafisk tilstand
ExtGState styrer avancerede gengivelsesegenskaber som fyld og streg alfa (gennemsigtighed) og blandingsmode.
Tips og bedste praksis
- Par altid
SaveState/RestoreState(ellerq/Qoperatorer) for at undgå at korrumpere grafikkens tilstandsstak. - Brug
ContentStreamBuildertil nyt indhold i stedet for manuelt at konstruere operator‑objekter. - Undersøg
OperatorCollectionskrivebeskyttet, før du ændrer den — uventede operatorkombinationer kan forårsage gengivelsesproblemer. - Farveoperatorer skal matche det aktuelle farverum (RGB, CMYK eller gråtoner).
- Brug
SetAdvancedColortil mønster‑ og ICC‑baserede farverum.
Almindelige problemer
| Problem | Årsag | Løsning |
|---|---|---|
| Tekst er ikke synlig efter tilføjelse af operatorer | Ingen skrifttype indstillet i teksttilstand | Tilføj en SetFont operator før ShowText |
| Farver vises forkert | Farverumsmismatch (RGB vs CMYK) | Brug den operator, der matcher det aktive farverum |
| Grafiktilstandsstakoverløb | Ubalancerede Save / Restore par | Sørg for at hver SaveState har en tilsvarende RestoreState |
| Indhold vises på forkert position | Manglende eller forkert matrixtransform | Bekræft værdierne for SetMatrix eller ConcatMatrix |
OSS
Hvad er en PDF-indholdsstrøm?
En indholdsstrøm er en sekvens af operatorer, der beskriver, hvordan man gengiver en side — tegner stier, placerer tekst, indstiller farver og håndterer grafisk tilstand.
Kan jeg tilføje nyt indhold til en eksisterende side?
Ja. Få adgang til page.Contents og tilføj nye operatorer, eller brug ContentStreamBuilder til at konstruere en sekvens og tilføje den.
Hvordan gør jeg teksten gennemsigtig?
Brug ExtGState til at indstille fyld‑alfa (ca) til en værdi mellem 0 (fuldt gennemsigtig) og 1 (fuldt ugennemsigtig).
API-referencens oversigt
| Klasse / Metode | Beskrivelse |
|---|---|
OperatorCollection | Sekvens af indholdsstrøm-operatorer på en side |
ContentStreamBuilder | Flydende builder til at konstruere operatorsekvenser |
ContentStreamBuilder.SaveState | Skub den aktuelle grafiske tilstand på stakken |
ContentStreamBuilder.RestoreState | Pop grafisk tilstand fra stakken |
ContentStreamBuilder.SetFillColor | Indstil udfyldningsfarven i den aktuelle farverum |
ContentStreamBuilder.SetMatrix | Anvend en koordinattransformation |
GraphicsState | Sporer transformationsmatrix, farve og teksttilstand |
SetColor | Operator der indstiller den ikke-stroking (fyld) farve |
SetColorStroke | Operator der indstiller stroking-farven |
SetAdvancedColor | Operator for mønster / ICC-baserede farverum |
ShowText | Operator der gengiver en tekststreng |
SetTextMatrix | Operator der positionerer tekst via en matrix |
ExtGState | Udvidet grafisk tilstand (alpha, blandingstilstand) |