[Raku PDF Project] / [PDF-Content Module] / PDF::Content :: Ops
A graphics machine for building and interpeting PDF Content operator streams
The PDF::Content::Ops role implements methods and mnemonics for the full operator table, as defined in specification [PDF 1.7 Appendix A]:
| * Operator * | *Mnemonic* | *Operands* | *Description* |
| b | CloseFillStroke | — | Close, fill, and stroke path using nonzero winding number rule |
| B | FillStroke | — | Fill and stroke path using nonzero winding number rule |
| b* | CloseEOFillStroke | — | Close, fill, and stroke path using even-odd rule |
| B* | EOFillStroke | — | Fill and stroke path using even-odd rule |
| BDC | BeginMarkedContentDict | tag properties | (PDF 1.2) Begin marked-content sequence with property list |
| BI | BeginImage | — | Begin inline image object |
| BMC | BeginMarkedContent | tag | (PDF 1.2) Begin marked-content sequence |
| BT | BeginText | — | Begin text object |
| BX | BeginExtended | — | (PDF 1.1) Begin compatibility section |
| c | CurveTo | x1 y1 x2 y2 x3 y3 | Append curved segment to path (two control points) |
| cm | ConcatMatrix | a b c d e f | Concatenate matrix to current transformation matrix |
| CS | SetStrokeColorSpace | name | (PDF 1.1) Set color space for stroking operations |
| cs | SetFillColorSpace | name | (PDF 1.1) Set color space for nonstroking operations |
| d | SetDashPattern | dashArray dashPhase | Set line dash pattern |
| d0 | SetCharWidth | wx wy | Set glyph width in Type 3 font |
| d1 | SetCharWidthBBox | wx wy llx lly urx ury | Set glyph width and bounding box in Type 3 font |
| Do | XObject | name | Invoke named XObject |
| DP | MarkPointDict | tag properties | (PDF 1.2) Define marked-content point with property list |
| EI | EndImage | — | End inline image object |
| EMC | EndMarkedContent | — | (PDF 1.2) End marked-content sequence |
| ET | EndText | — | End text object |
| EX | EndExtended | — | (PDF 1.1) End compatibility section |
| f | Fill | — | Fill path using nonzero winding number rule |
| F | FillObsolete | — | Fill path using nonzero winding number rule (obsolete) |
| f* | EOFill | — | Fill path using even-odd rule |
| G | SetStrokeGray | gray | Set gray level for stroking operations |
| g | SetFillGray | gray | Set gray level for nonstroking operations |
| gs | SetGraphicsState | dictName | (PDF 1.2) Set parameters from graphics state parameter dictionary |
| h | ClosePath | — | Close subpath |
| i | SetFlatness | flatness | Set flatness tolerance |
| ID | ImageData | — | Begin inline image data |
| j | SetLineJoin | lineJoin| Set line join style | |
| J | SetLineCap | lineCap | Set line cap style |
| K | SetStrokeCMYK | c m y k | Set CMYK color for stroking operations |
| k | SetFillCMYK | c m y k | Set CMYK color for nonstroking operations |
| l | LineTo | x y | Append straight line segment to path |
| m | MoveTo | x y | Begin new subpath |
| M | SetMiterLimit | miterLimit | Set miter limit |
| MP | MarkPoint | tag | (PDF 1.2) Define marked-content point |
| n | EndPath | — | End path without filling or stroking |
| q | Save | — | Save graphics state |
| Q | Restore | — | Restore graphics state |
| re | Rectangle | x y width height | Append rectangle to path |
| RG | SetStrokeRGB | r g b | Set RGB color for stroking operations |
| rg | SetFillRGB | r g b | Set RGB color for nonstroking operations |
| ri | SetRenderingIntent | intent | Set color rendering intent |
| s | CloseStroke | — | Close and stroke path |
| S | Stroke | — | Stroke path |
| SC | SetStrokeColor | c1 … cn | (PDF 1.1) Set color for stroking operations |
| sc | SetFillColor | c1 … cn | (PDF 1.1) Set color for nonstroking operations |
| SCN | SetStrokeColorN | c1 … cn [name] | (PDF 1.2) Set color for stroking operations (ICCBased and special color spaces) |
| scn | SetFillColorN | c1 … cn [name] | (PDF 1.2) Set color for nonstroking operations (ICCBased and special color spaces) |
| sh | ShFill | name | (PDF 1.3) Paint area defined by shading pattern |
| T* | TextNextLine | — | Move to start of next text line |
| Tc | SetCharSpacing| charSpace | Set character spacing | |
| Td | TextMove | tx ty | Move text position |
| TD | TextMoveSet | tx ty | Move text position and set leading |
| Tf | SetFont | font size | Set text font and size |
| Tj | ShowText | string | Show text |
| TJ | ShowSpaceText | array | Show text, allowing individual glyph positioning |
| TL | SetTextLeading | leading | Set text leading |
| Tm | SetTextMatrix | a b c d e f | Set text matrix and text line matrix |
| Tr | SetTextRender | render | Set text rendering mode |
| Ts | SetTextRise | rise | Set text rise |
| Tw | SetWordSpacing | wordSpace | Set word spacing |
| Tz | SetHorizScaling | scale | Set horizontal text scaling |
| v | CurveToInitial | x2 y2 x3 y3 | Append curved segment to path (initial point replicated) |
| w | SetLineWidth | lineWidth | Set line width |
| W | Clip | — | Set clipping path using nonzero winding number rule |
| W* | EOClip | — | Set clipping path using even-odd rule |
| y | CurveToFinal | x1 y1 x3 y3 | Append curved segment to path (final point replicated) |
| ' | MoveShowText | string | Move to next line and show text |
| " | MoveSetShowText | aw ac string | Set word and character spacing, move to next line, and show text |
Methods
method font-face() returns PDF::COS::Dict
returns the current graphics font dictionary resource
method font-size() returns Numeric
returns the current graphics font size
method tags() returns PDF::Content::Tag::NodeSet
returns the current tags status
multi method gsaves(
:$delta! where { ... }
) returns Array
return graphics gsave stack, including changed variables only
multi method gsaves() returns Array
return graphics gsave stack, including all graphics variables
multi method graphics-state(
:$delta!
) returns Hash
return locally updated graphics state variables
multi method graphics-state() returns Mu
return all current graphics state variables
method current-point() returns List
return current point
This method returns the x,y position of current point in a path context, or an undefined list otherwise.
multi method op(
Pair $_ where { ... }
) returns Mu
process operator quarantined by PDF::Grammar::Content / PDF::Native::COS as either an unknown operator or having an incorrect argument list
multi method op(
*@args is copy
) returns Mu
Process a parsed graphics operation
multi method ops(
Str $ops
) returns Array
Parse and process graphics operations
multi method ops(
List $ops?
) returns Array
Parse and process a list of graphics operations
method add-comment(
Str $_
) returns Mu
Add a comment to the content stream
multi sub parse-content(
Str $content where { ... }
) returns Mu
parse, but don’t process PDF content operators
method finish() returns Mu
Finish a content stream
serialize content into a string. indent blocks for readability
method content-dump() returns Seq
serialized current content as a sequence of strings - for debugging/testing
method FALLBACK(
$method,
|c
) returns Mu
Treat operator mnemonics as methods