Innehållsoperationer

Innehållsoperationer

Innehållsoperationer

PDF-sidor renderas av en sekvens av operatorer som lagras i ett innehållsflöde.
Aspose.PDF FOSS for .NET exponerar dessa operatorer genom OperatorCollection
på varje Page, och tillhandahåller ContentStreamBuilder för att konstruera nytt
innehåll programmässigt.


Läsa innehållsströmoperatörer

Varje Page har en Contents‑egenskap som returnerar en OperatorCollection. Iterera den för att inspektera varje operator.

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

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

Bygga innehållsströmmar

ContentStreamBuilder tillhandahåller ett flytande API för att konstruera innehållsströmoperatorsekvenser inklusive grafikstatushantering, banbyggnad, textutmatning och färginställningar.

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

Grafiskt tillstånd

GraphicsState spårar den aktuella transformationsmatrisen, texttillståndet och färgvärdena när operatorer körs. Nyckeloperationer:

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

Färgoperatorer

SetColor och SetColorStroke anger fyllnings- och konturfärger respektive. De accepterar RGB-, CMYK- eller gråskalekomponenter.

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

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

Textoperatorer

ShowText renderar en textsträng på den aktuella textpositionen med det aktuella teckensnittet och storleken från grafikläget.

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

SetTextMatrix positionerar text genom att definiera en transformationsmatris för textutrymmet.


Utökad grafikstatus

ExtGState styr avancerade renderingsegenskaper som fyllning och kontur alfa (transparens) och blandningsläge.


Tips och bästa praxis

  • Para alltid SaveState / RestoreState (eller q / Q‑operatorer) för att undvika att korrupta grafik‑tillståndsstapeln.
  • Använd ContentStreamBuilder för nytt innehåll istället för att manuellt konstruera operatorobjekt.
  • Inspektera OperatorCollection som skrivskyddad innan du modifierar — oväntade operatorsekvenser kan orsaka renderingsproblem.
  • Färgoperatorer måste matcha det aktuella färgrymdet (RGB, CMYK eller gråskala).
  • Använd SetAdvancedColor för mönster‑ och ICC‑baserade färgrymden.

Vanliga problem

ProblemOrsakÅtgärd
Text syns inte efter att ha lagt till operatorerIngen teckensnitt angivet i texttillståndetLägg till en SetFont-operator före ShowText
Färger visas felaktigtFärgrymdsmissmatch (RGB vs CMYK)Använd operatorn som matchar den aktiva färgrymden
Grafikstatusens stack överskriderObalanserade Save / Restore-parSäkerställ att varje SaveState har en matchande RestoreState
Innehåll visas på fel positionSaknad eller felaktig matristransformVerifiera värdena för SetMatrix eller ConcatMatrix

Vanliga frågor

Vad är en PDF-innehållsström?

En innehållsström är en sekvens av operatorer som beskriver hur man renderar en sida — ritar banor, placerar text, ställer in färger och hanterar grafikstatus.

Kan jag lägga till nytt innehåll på en befintlig sida?

Ja. Åtkomst till page.Contents och lägg till nya operatorer, eller använd ContentStreamBuilder för att konstruera en sekvens och lägga till den.

Hur gör jag text transparent?

Använd ExtGState för att sätta fyllningsalfa (ca) till ett värde mellan 0 (helt transparent) och 1 (helt ogenomskinligt).


API-referenssammanfattning

Klass / MetodBeskrivning
OperatorCollectionSekvens av innehållsströmoperatorer på en sida
ContentStreamBuilderFluent builder för att konstruera operatorsekvenser
ContentStreamBuilder.SaveStateLägg till aktuellt grafikläge på stacken
ContentStreamBuilder.RestoreStateTa bort grafikläge från stacken
ContentStreamBuilder.SetFillColorStäll in fyllningsfärgen i det aktuella färgrymdet
ContentStreamBuilder.SetMatrixApplicera en koordinattransformation
GraphicsStateSpårar transformationsmatris, färg och textläge
SetColorOperator som sätter icke-streckningsfärgen (fyllning)
SetColorStrokeOperator som sätter streckningsfärgen
SetAdvancedColorOperator för mönster / ICC-baserade färgrymder
ShowTextOperator som renderar en textsträng
SetTextMatrixOperator som placerar text via en matris
ExtGStateUtökad grafikstatus (alpha, blandningsläge)

Se även

 Svenska