Inhoudsoperaties

Inhoudsoperaties

Inhoudsoperaties

PDF-pagina’s worden gerenderd door een reeks operators die zijn opgeslagen in een contentstream.
Aspose.PDF FOSS for .NET maakt deze operators beschikbaar via OperatorCollection
op elke Page, en biedt ContentStreamBuilder voor het programmatisch construeren van nieuwe
content.


Lezen van content-stream operatoren

Elke Page heeft een Contents eigenschap die een OperatorCollection retourneert. Itereer erdoor om elke operator te inspecteren.

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

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

Inhoudsstromen bouwen

ContentStreamBuilder biedt een fluent API voor het construeren van content‑stream operatorreeksen, inclusief graphics‑state management, path construction, text output en color settings.

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

Grafische status

GraphicsState houdt de huidige transformatie‑matrix, tekststatus en kleurwaarden bij terwijl operatoren worden uitgevoerd. Belangrijke bewerkingen:

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

Kleuroperatoren

SetColor en SetColorStroke stellen respectievelijk vul‑ en lijnkleuren in. Ze accepteren RGB‑, CMYK‑ of grijstintencomponenten.

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

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

Tekstoperatoren

ShowText rendert een tekststring op de huidige tekstpositie met het huidige lettertype en de grootte uit de grafische status.

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

SetTextMatrix positioneert tekst door een transformatie‑matrix voor de tekstruimte te definiëren.


Uitgebreide grafische toestand

ExtGState regelt geavanceerde render‑eigenschappen zoals vul‑ en lijnalfa (transparantie) en mengmodus


Tips en Best Practices

  • Koppel altijd SaveState / RestoreState (of q / Q operatoren) om te voorkomen dat de grafische statusstack wordt beschadigd.
  • Gebruik ContentStreamBuilder voor nieuwe inhoud in plaats van handmatig operatorobjecten te construeren.
  • Inspecteer OperatorCollection alleen-lezen voordat u wijzigt — onverwachte operatorreeksen kunnen renderingsproblemen veroorzaken.
  • Kleuroperatoren moeten overeenkomen met de huidige kleurruimte (RGB, CMYK of grijswaarden).
  • Gebruik SetAdvancedColor voor patroon- en ICC‑gebaseerde kleurruimtes.

Veelvoorkomende problemen

IssueCauseFix
Tekst niet zichtbaar na het toevoegen van operatorsGeen lettertype ingesteld in tekststatusVoeg een SetFont operator toe vóór ShowText
Kleuren verschijnen verkeerdKleurruimte mismatch (RGB vs CMYK)Gebruik de operator die overeenkomt met de actieve kleurruimte
Grafische status stack overflowOngebalanceerde Save / Restore parenZorg ervoor dat elke SaveState een bijpassende RestoreState heeft
Inhoud verschijnt op de verkeerde positieOntbrekende of onjuiste matrixtransformatieControleer de waarden van SetMatrix of ConcatMatrix

Veelgestelde vragen

Wat is een PDF-inhoudsstroom?

Een contentstream is een reeks operatoren die beschrijven hoe een pagina moet worden gerenderd — paden tekenen, tekst plaatsen, kleuren instellen en de grafische status beheren.

Kan ik nieuwe inhoud toevoegen aan een bestaande pagina?

Ja. Open page.Contents en voeg nieuwe operatoren toe, of gebruik
ContentStreamBuilder om een reeks te construeren en deze toe te voegen.

Hoe maak ik tekst transparant?

Gebruik ExtGState om de vulalfa (ca) in te stellen op een waarde tussen 0 (volledig transparant) en 1 (volledig ondoorzichtig).


API-referentieoverzicht

Class / MethodDescription
OperatorCollectionReeks van content‑stream‑operatoren op een pagina
ContentStreamBuilderFluent builder voor het construeren van operatorreeksen
ContentStreamBuilder.SaveStateHuidige grafische status op de stack plaatsen
ContentStreamBuilder.RestoreStateGrafische status van de stack verwijderen
ContentStreamBuilder.SetFillColorDe vulkleur instellen in de huidige kleurruimte
ContentStreamBuilder.SetMatrixEen coördinatentransformatie toepassen
GraphicsStateHoudt transformatie‑matrix, kleur en tekststatus bij
SetColorOperator die de niet‑strokende (vul‑)kleur instelt
SetColorStrokeOperator die de strokekleur instelt
SetAdvancedColorOperator voor patroon‑/ICC‑gebaseerde kleurruimtes
ShowTextOperator die een tekstreeks rendert
SetTextMatrixOperator die tekst positioneert via een matrix
ExtGStateUitgebreide grafische status (alpha, blend‑modus)

Zie ook

 Nederlands