Table of Contents

Class PdfVectorPath

Namespace
PDiffy
Assembly
PDiffy.dll

A painted vector path: its bounding box, and its fill and stroke. Unpainted parts are null.

public sealed record PdfVectorPath : IEquatable<PdfVectorPath>
Inheritance
PdfVectorPath
Implements
Inherited Members

Properties

BlendMode

How its colors mix with what's drawn under it; Normal paints over it.

public PdfBlendMode BlendMode { get; init; }

Property Value

PdfBlendMode

Clipped

Whether the clipping area (a clipping path, or the box of a form it's drawn in) leaves it out entirely, so it doesn't show. Content the clipping area cuts only partly isn't marked. A clipping path counts in its real shape, with curves traced in small straight steps. Text drawn in a clipping mode (4 to 7) clips to its letters' shapes, or to their boxes when PDiffy can't read the font's outlines, as with a standard font that isn't embedded.

public bool Clipped { get; init; }

Property Value

bool

Covered

Whether something opaque drawn after it covers all of it, so it doesn't show. Only a shape filled with a plain color or an image without a mask counts as covering, and not when it's in a layer. It covers only what lies wholly inside its real shape. Content covered only partly isn't marked.

public bool Covered { get; init; }

Property Value

bool

DashOffset

How far into the dash pattern the outline starts, as the PDF sets it, in whole units; usually 0.

public double DashOffset { get; init; }

Property Value

double

Dashes

The lengths of the dashes and gaps the outline repeats, in turn, as the PDF sets them, rounded to one decimal place, such as [3, 2]; empty for a solid outline or when the path isn't stroked.

public IReadOnlyList<double> Dashes { get; init; }

Property Value

IReadOnlyList<double>

Fill

The fill color, written like "gray:0", "#ff0000", "cmyk:0,0,0,1" or, for a gradient or tiled fill, its kind and a hash of what it draws ("pattern:shading:3f9c0a1b2d4e5f60"). An uncolored tile, which has no color of its own, also gets the color it's painted in ("pattern:tiling:3f9c0a1b2d4e5f60:#ff0000"). A color given in a color space other than a device or pattern one, such as a spot color or an ICC-based one, starts with that space's family and a hash of its definition ("separation:3f9c0a1b2d4e5f60:cmyk:0.8,0,1,0"). The fill is "gray:0" (black) when the PDF fills without choosing a color, and null when the path isn't filled.

public required string? Fill { get; init; }

Property Value

string

GroupBlendModes

The blend modes of the transparency groups it's drawn in that BlendMode leaves out because it already holds a mode set inside the group, innermost first. Each mixes its group as a whole with what's under it. Empty when there are none.

public IReadOnlyList<PdfBlendMode> GroupBlendModes { get; init; }

Property Value

IReadOnlyList<PdfBlendMode>

Height

The bounding box's height, in points; 0 for a horizontal line.

public required double Height { get; init; }

Property Value

double

Layers

The optional-content layers the path is drawn in, outermost first, by name, such as "Draft"; empty when it's drawn outside optional content. A viewer can hide a layer, so its content may not show or print.

public IReadOnlyList<string> Layers { get; init; }

Property Value

IReadOnlyList<string>

LineCap

How the outline's ends are drawn; Butt when the path isn't stroked.

public PdfLineCap LineCap { get; init; }

Property Value

PdfLineCap

LineJoin

How the outline's corners are drawn; Miter when the path isn't stroked.

public PdfLineJoin LineJoin { get; init; }

Property Value

PdfLineJoin

LineWidth

The outline's width as the PDF sets it, rounded to one decimal place; null when the path isn't stroked.

public required double? LineWidth { get; init; }

Property Value

double?

MiterLimit

How far a sharp corner may reach past the outline before it's cut off, as a multiple of the line width; PDF's default, 10, unless the outline is stroked with Miter corners, has a corner, and sets another.

public double MiterLimit { get; init; }

Property Value

double

Opacity

How opaque its fill is, from 0 (invisible) to 1, rounded to two decimal places; 1 when it isn't filled or no graphics state makes it see-through.

public double Opacity { get; init; }

Property Value

double

Page

The page number, counted from 1.

public required int Page { get; init; }

Property Value

int

RenderingIntent

How colors outside what the output device can show are brought into what it can (the ri operator, or /RI in a graphics state); RelativeColorimetric, PDF's default, unless set.

public PdfRenderingIntent RenderingIntent { get; init; }

Property Value

PdfRenderingIntent

Role

Whether the path is tagged, an artifact, or untagged.

public required PdfContentRole Role { get; init; }

Property Value

PdfContentRole

Shape

A hash of the path's outline (its points and curves, measured from the bounding box's lower-left corner, and for a filled path whether it uses the even-odd fill rule), such as "3f9c0a1b2d4e5f60". Reshaping the path changes it; moving it doesn't. Null when the box already describes the path: one horizontal or vertical line, or one rectangle drawn with the re operator whose sides are parallel to the page's edges.

public string? Shape { get; init; }

Property Value

string

SoftMask

A hash of the soft masks that make parts of it see-through, as a gradient fade does, including what they draw, such as "3f9c0a1b2d4e5f60", or "unreadable"; null when it has no soft mask.

public string? SoftMask { get; init; }

Property Value

string

Stroke

The outline's color, written the same way as Fill; null when the path isn't stroked.

public required string? Stroke { get; init; }

Property Value

string

StrokeOpacity

How opaque its outline is, from 0 (invisible) to 1, rounded to two decimal places; 1 when it isn't outlined or no graphics state makes it see-through.

public double StrokeOpacity { get; init; }

Property Value

double

Width

The bounding box's width, in points; 0 for a vertical line.

public required double Width { get; init; }

Property Value

double

X

The left edge of the path's bounding box, in points from the page's left edge.

public required double X { get; init; }

Property Value

double

Y

The bottom edge of the path's bounding box, in points from the page's bottom edge.

public required double Y { get; init; }

Property Value

double