Opérations de contenu

Opérations de contenu

Opérations de contenu

Les pages PDF sont rendues par une séquence d’opérateurs stockés dans un flux de contenu.
Aspose.PDF FOSS for .NET expose ces opérateurs via OperatorCollection
sur chaque Page, et fournit ContentStreamBuilder pour construire du nouveau
contenu de manière programmatique.


Lecture des opérateurs de flux de contenu

Chaque Page possède une propriété Contents qui renvoie un OperatorCollection. Parcourez‑le pour inspecter chaque opérateur.

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

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

Création de flux de contenu

ContentStreamBuilder fournit une API fluide pour la construction de séquences d’opérateurs de flux de contenu, incluant la gestion de l’état graphique, la construction de chemins, la sortie de texte et les réglages de couleur.

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

État graphique

GraphicsState suit la matrice de transformation actuelle, l’état du texte et les valeurs de couleur pendant l’exécution des opérateurs. Opérations clés :

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

Opérateurs de couleur

SetColor et SetColorStroke définissent respectivement les couleurs de remplissage et de contour.
Ils acceptent des composants RGB, CMYK ou en niveaux de gris.

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

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

Opérateurs de texte

ShowText rend une chaîne de texte à la position de texte actuelle en utilisant la police et la taille actuelles de l’état graphique.

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

SetTextMatrix positionne le texte en définissant une matrice de transformation pour l’espace texte.


État graphique étendu

ExtGState contrôle les propriétés de rendu avancées comme le remplissage et le trait, l’alpha (transparence) et le mode de fusion.


Conseils et meilleures pratiques

  • Associez toujours SaveState / RestoreState (ou les opérateurs q / Q) pour éviter de corrompre la pile d’état graphique.
  • Utilisez ContentStreamBuilder pour du nouveau contenu plutôt que de construire manuellement des objets opérateur.
  • Inspectez OperatorCollection en lecture seule avant de le modifier — des séquences d’opérateurs inattendues peuvent provoquer des problèmes de rendu.
  • Les opérateurs de couleur doivent correspondre à l’espace colorimétrique actuel (RGB, CMYK ou niveaux de gris).
  • Utilisez SetAdvancedColor pour les espaces colorimétriques de type motif et basés sur ICC.

Problèmes courants

IssueCauseFix
Texte non visible après l’ajout d’opérateursAucune police définie dans l’état du texteAjouter un opérateur SetFont avant ShowText
Les couleurs apparaissent incorrectesIncompatibilité d’espace colorimétrique (RGB vs CMYK)Utiliser l’opérateur correspondant à l’espace colorimétrique actif
Débordement de la pile d’état graphiquePaires Save / Restore déséquilibréesS’assurer que chaque SaveState a un RestoreState correspondant
Le contenu apparaît à la mauvaise positionTransformation de matrice manquante ou incorrecteVérifier les valeurs SetMatrix ou ConcatMatrix

FAQ

Qu’est‑ce qu’un flux de contenu PDF ?

Un flux de contenu est une séquence d’opérateurs qui décrivent comment rendre une page — tracer des chemins, placer du texte, définir les couleurs et gérer l’état graphique.

Puis‑je ajouter du nouveau contenu à une page existante ?

Oui. Accédez à page.Contents et ajoutez de nouveaux opérateurs, ou utilisez
ContentStreamBuilder pour construire une séquence et l’ajouter.

Comment rendre le texte transparent ?

Utilisez ExtGState pour définir l’alpha de remplissage (ca) à une valeur comprise entre 0 (totalement transparent) et 1 (totalement opaque).


Résumé de la référence API

Classe / MéthodeDescription
OperatorCollectionSéquence d’opérateurs de flux de contenu sur une page
ContentStreamBuilderConstructeur fluide pour créer des séquences d’opérateurs
ContentStreamBuilder.SaveStateEmpiler l’état graphique actuel sur la pile
ContentStreamBuilder.RestoreStateDépiler l’état graphique de la pile
ContentStreamBuilder.SetFillColorDéfinir la couleur de remplissage dans l’espace colorimétrique actuel
ContentStreamBuilder.SetMatrixAppliquer une transformation de coordonnées
GraphicsStateSuit la matrice de transformation, la couleur et l’état du texte
SetColorOpérateur définissant la couleur de remplissage (non-tracé)
SetColorStrokeOpérateur définissant la couleur de tracé
SetAdvancedColorOpérateur pour les espaces colorimétriques à motif / basés sur ICC
ShowTextOpérateur rendant une chaîne de texte
SetTextMatrixOpérateur positionnant le texte via une matrice
ExtGStateÉtat graphique étendu (alpha, mode de fusion)

Voir aussi

 Français