Opérations de contenu

Vue d’ensemble

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


Lecture des opérateurs de flux de contenu

Chaque Page possède une propriété Contents qui renvoie un OperatorCollection. Parcourez-la 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());
}

Construction de flux de contenu

ContentStreamBuilder fournit un API fluide pour construire des 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 à mesure que les opérateurs s’exécutent. 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 composantes RGB, CMYK ou 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 courantes provenant 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 telles que l’alpha de remplissage et de contour (transparence) et le mode de fusion.


Conseils et bonnes pratiques

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

Problèmes courants

ProblèmeCauseCorrection
Texte non visible après l’ajout d’opérateursAucune police définie dans l’état du texteAjoutez un opérateur SetFont avant ShowText
Les couleurs apparaissent incorrectesIncohérence d’espace couleur (RGB vs CMYK)Utilisez l’opérateur correspondant à l’espace colorimétrique actif
Débordement de la pile d’état graphiquePaires Save / Restore déséquilibréesAssurez-vous que chaque SaveState possède un RestoreState correspondant
Le contenu apparaît à la mauvaise positionTransformation matricielle manquante ou incorrecteVérifiez les valeurs de 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 (complètement transparent) et 1 (complètement opaque).


API Reference Résumé

Classe / MéthodeDescription
OperatorCollectionSéquence d’opérateurs de flux de contenu sur une page
ContentStreamBuilderBuilder fluide pour construire des séquences d’opérateurs
ContentStreamBuilder.SaveStateEmpile l’état graphique actuel sur la pile
ContentStreamBuilder.RestoreStateDépile l’état graphique de la pile
ContentStreamBuilder.SetFillColorDéfinir la couleur de remplissage dans l’espace couleur actuel
ContentStreamBuilder.SetMatrixApplique 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 du tracé
SetAdvancedColorOpérateur pour les espaces de couleur de motif / basés sur ICC
ShowTextOpérateur affichant 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