Operace s obsahem

Operace obsahu

PDF stránky jsou vykreslovány sekvencí operátorů uložených v content streamu. Aspose.PDF FOSS pro .NET vystavuje tyto operátory prostřednictvím OperatorCollection na každém Page a poskytuje ContentStreamBuilder pro programové vytváření nového obsahu.


Čtení operátorů content-stream

Každý Page má vlastnost Contents, která vrací OperatorCollection. Procházejte ji, abyste prozkoumali každý operátor.

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

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

Vytváření content streamů

ContentStreamBuilder poskytuje plynulý API pro vytváření sekvencí operátorů content-stream zahrnujících správu graphics-state, konstrukci cest, výstup textu a nastavení barev.

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

Stav grafiky

GraphicsState sleduje aktuální transformační matici, stav textu a hodnoty barev během provádění operátorů. Hlavní operace:

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

Operátory barev

SetColor a SetColorStroke nastavují barvy výplně a obrysu. Přijímají komponenty RGB, CMYK nebo odstíny šedi.

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

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

Operátory textu

ShowText vykresluje řetězec textu na aktuální pozici textu pomocí aktuálního písma a velikosti ze stavového grafického kontextu.

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

SetTextMatrix umisťuje text definováním transformační matice pro textový prostor.


Rozšířený grafický stav

ExtGState řídí pokročilé vlastnosti vykreslování, jako jsou alfa (průhlednost) výplně a obrysu a režim prolnutí.


Tipy a osvědčené postupy

  • Vždy párujte operátory SaveState / RestoreState (nebo q / Q), aby nedošlo k poškození zásobníku grafického stavu.
  • Používejte ContentStreamBuilder pro nový obsah místo ručního vytváření objektů operátorů.
  • Prohlédněte OperatorCollection jen pro čtení před úpravou — neočekávané sekvence operátorů mohou způsobit problémy s vykreslováním.
  • Barevné operátory musí odpovídat aktuálnímu barevnému prostoru (RGB, CMYK nebo odstíny šedi).
  • Používejte SetAdvancedColor pro vzorové a ICC-založené barevné prostory.

Časté problémy

ProblémPříčinaOprava
Text není viditelný po přidání operátorůVe stavovém textu není nastaven žádný fontPřidejte operátor SetFont před ShowText
Barvy vypadají špatněNeshoda barevného prostoru (RGB vs CMYK)Použijte operátor odpovídající aktivnímu barevnému prostoru
Přetečení zásobníku grafického stavuNevyvážené páry Save / RestoreZajistěte, aby každý SaveState měl odpovídající RestoreState
Obsah se zobrazuje na nesprávné poziciChybějící nebo nesprávná transformace maticeOvěřte hodnoty SetMatrix nebo ConcatMatrix

FAQ

Co je PDF obsahový proud?

Obsahový proud je sekvence operátorů, které popisují, jak vykreslit stránku — kreslení cest, umisťování textu, nastavení barev a správa grafického stavu.

Mohu přidat nový obsah na existující stránku?

Ano. Přistupte k page.Contents a přidejte nové operátory, nebo použijte ContentStreamBuilder k vytvoření sekvence a připojte ji.

Jak udělat text průhledným?

Použijte ExtGState k nastavení alfa kanálu výplně (ca) na hodnotu mezi 0 (zcela průhledné) a 1 (zcela neprůhledné).


API Reference Shrnutí

Třída / MetodaPopis:
OperatorCollectionSekvence operátorů content streamu na stránce
ContentStreamBuilderFluent builder pro vytváření sekvencí operátorů
ContentStreamBuilder.SaveStateUmístit aktuální grafický stav na zásobník
ContentStreamBuilder.RestoreStateVyjmout grafický stav ze zásobníku
ContentStreamBuilder.SetFillColorNastavte barvu výplně v aktuálním barevném prostoru
ContentStreamBuilder.SetMatrixPoužít souřadnicovou transformaci
GraphicsStateSleduje transformační matici, barvu a stav textu
SetColorOperátor nastavující barvu pro neobrysování (výplň)
SetColorStrokeOperátor nastavující barvu obrysu
SetAdvancedColorOperátor pro vzorové / ICC-založené barevné prostory
ShowTextOperátor vykreslující textový řetězec
SetTextMatrixOperátor umisťující text pomocí matice
ExtGStateRozšířený grafický stav (alfa, režim prolnutí)

Viz také:

 Čeština