CLI reference

vpype

Execute the vector processing pipeline passed as argument.

vpype [OPTIONS] COMMAND1 [ARGS]... [COMMAND2 [ARGS]...]...

Options

--version

Show the version and exit.

-v, --verbose
-I, --include <include>

Load commands from a command file.

-H, --history

Record this command in a vpype_history.txt in the current directory.

-s, --seed <seed>

Specify the RNG seed.

-c, --config <config>

Load an additional config file.

Commands

arc

Generate lines approximating a circular arc.

begin

Marks the start of a block.

circle

Generate lines approximating a circle.

crop

Crop the geometries.

ellipse

Generate lines approximating an ellipse.

end

Marks the end of a block.

filter

Filter paths according to specified…

frame

Add a single-line frame around the geometry.

grid

Arrange generated geometries on a NxM grid.

layout

Layout the geometries on the provided page…

lcopy

Copy the content of one or more layer(s) to…

ldelete

Delete one or more layers.

line

Generate a single line.

linemerge

Merge lines whose endings and starts overlap…

linesimplify

Reduce the number of segments in the…

linesort

Sort lines to minimize the pen-up travel…

lmove

Move the content of one or more layer(s) to…

multipass

Add multiple passes to each line Each line is…

pagesize

Change the current page size.

random

Generate random lines.

read

Extract geometries from a SVG file.

rect

Generate a rectangle, with optional rounded…

reloop

Randomize the seam location of closed paths.

repeat

Stack geometries generated by the block N…

reverse

Reverse order of lines.

rotate

Rotate the geometries (clockwise positive).

scale

Scale the geometries by a factor.

scaleto

Scale the geometries to given dimensions.

script

Call an external python script to generate…

show

Display the geometry in an graphical user…

skew

Skew the geometries.

snap

Snap all points to a grid with with a spacing…

splitall

Split all paths into their constituent…

stat

Print human-readable statistics on the…

translate

Translate the geometries.

trim

Trim the geometries by some margin.

write

Save geometries to a file.

arc

Generate lines approximating a circular arc.

The arc is centered on (X, Y) and has a radius of R and spans counter-clockwise from START to STOP angles. Angular values of zero refer to east of unit circle and positive values extend counter-clockwise.

Angles are in degree by default, but alternative CSS units such as “rad” or “grad” may be provided.

arc [OPTIONS] X Y RW RH START STOP

Options

-q, --quantization <quantization>

Maximum length of segments approximating the arc.

-l, --layer <layer>

Target layer or ‘new’.

Arguments

X

Required argument

Y

Required argument

RW

Required argument

RH

Required argument

START

Required argument

STOP

Required argument

begin

Marks the start of a block.

A begin command must be followed by a block processor command (eg. grid or repeat), which indicates how the block is processed. Blocks must be ended by a end command.

Blocks can be nested.

begin [OPTIONS]

circle

Generate lines approximating a circle.

The circle is centered on (X, Y) and has a radius of R.

circle [OPTIONS] X Y R

Options

-q, --quantization <quantization>

Maximum length of segments approximating the circle.

-l, --layer <layer>

Target layer or ‘new’.

Arguments

X

Required argument

Y

Required argument

R

Required argument

crop

Crop the geometries.

The crop area is defined by the (X, Y) top-left corner and the WIDTH and HEIGHT arguments. All arguments understand supported units.

crop [OPTIONS] X Y WIDTH HEIGHT

Options

-l, --layer <layer>

Target layer(s) or ‘all’.

Arguments

X

Required argument

Y

Required argument

WIDTH

Required argument

HEIGHT

Required argument

ellipse

Generate lines approximating an ellipse.

The ellipse is centered on (X, Y), with a half-width of W and a half-height of H.

ellipse [OPTIONS] X Y W H

Options

-q, --quantization <quantization>

Maximum length of segments approximating the ellipse.

-l, --layer <layer>

Target layer or ‘new’.

Arguments

X

Required argument

Y

Required argument

W

Required argument

H

Required argument

end

Marks the end of a block.

end [OPTIONS]

frame

Add a single-line frame around the geometry.

By default, the frame shape is the current geometries’ bounding box. An optional offset can be provided.

frame [OPTIONS]

Options

-o, --offset <offset>

Offset from the geometries’ bounding box. This option understands supported units.

-l, --layer <layer>

Target layer or ‘new’.

filter

Filter paths according to specified criterion.

When an option is provided (e.g. --min-length 10cm) the corresponding criterion is applied and paths which do not respect the criterion (e.g. a 9cm-long path) are rejected.

If multiple options are provided, paths will be kept only if they respect every corresponding criterion (i.e. logical AND operator).

filter [OPTIONS]

Options

-m, --min-length <min_length>

keep lines whose length is no shorter than value

-M, --max-length <max_length>

keep lines whose length is no greater than value

-c, --closed

keep closed lines

-o, --not-closed

reject closed lines

-t, --tolerance <tolerance>

tolerance used to determined if a line is closed or not (default: 0.05mm)

-l, --layer <layer>

Target layer(s) or ‘all’.

grid

Arrange generated geometries on a NxM grid.

The number of column and row must always be specified. By default, 10mm offsets are used in both directions. Use the --offset to override these values.

grid [OPTIONS] [NUMBER]...

Options

-o, --offset <offset>

Offset between columns and rows. This option understands supported units.

Arguments

NUMBER

Optional argument(s)

layout

Layout the geometries on the provided page size.

By default, this command centers everything on the page. The horizontal and vertical alignment can be adjusted using the --align, resp. --valign options.

Optionally, this command can scale the geometries to fit specified margins with the --fit-to-margin option.

Examples:

Fit the geometries to 3cm margins with top alignment (a generally pleasing arrangement for square designs on portrait-oriented pages):

vpype read input.svg layout --fit-to-margin 3cm --valign top a4 write.svg

layout [OPTIONS] SIZE

Options

-l, --landscape

Landscape orientation.

-m, --fit-to-margins <margin>

Fit the geometries to page size with the specified margin.

-h, --align <align>

Horizontal alignment

Options

left|center|right

-v, --valign <valign>

Vertical alignment

Options

top|center|bottom

Arguments

SIZE

Required argument

lcopy

Copy the content of one or more layer(s) to another layer.

SOURCES can be a single layer ID, the string ‘all’ (to copy all non-empty layers, or a coma-separated, whitespace-free list of layer IDs.

DEST can be a layer ID or the string ‘new’, in which case a new layer with the lowest available ID will be created.

If a layer is both in the source and destination, its content is not duplicated.

Examples:

Copy layer 1 to a new layer:

vpype […] lcopy 1 new […] # duplicate layer 1

Make a new layer with a merged copy of layer 1 and 2:

vpype […] lcopy 1,2 new […] # make new layer with merged copy of layer 1 and 2

Add a merged copy of all layers to layer 1. If layer 1 previously had content, this content is not duplicated:

vpype […] lcopy all 1 […]

lcopy [OPTIONS] SOURCES DEST

Arguments

SOURCES

Required argument

DEST

Required argument

ldelete

Delete one or more layers.

LAYERS can be a single layer ID, the string ‘all’ (to delete all layers), or a coma-separated, whitespace-free list of layer IDs.

ldelete [OPTIONS] LAYERS

Arguments

LAYERS

Required argument

line

Generate a single line.

The line starts at (X0, Y0) and ends at (X1, Y1). All arguments understand supported units.

line [OPTIONS] X0 Y0 X1 Y1

Options

-l, --layer <layer>

Target layer or ‘new’.

Arguments

X0

Required argument

Y0

Required argument

X1

Required argument

Y1

Required argument

linemerge

Merge lines whose endings and starts overlap or are very close.

By default, linemerge considers both directions of a stroke. If there is no additional start of a stroke within the provided tolerance, it also checks for ending points of strokes and uses them in reverse. You can use the --no-flip to disable this reversing behaviour and preserve the stroke direction from the input.

By default, gaps of maximum 0.05mm are considered for merging. This can be controlled with the --tolerance option.

linemerge [OPTIONS]

Options

-t, --tolerance <tolerance>

Maximum distance between two line endings that should be merged.

-f, --no-flip

Disable reversing stroke direction for merging.

-l, --layer <layer>

Target layer(s) or ‘all’.

linesimplify

Reduce the number of segments in the geometries.

The resulting geometries’ points will be at a maximum distance from the original controlled by the --tolerance parameter (0.05mm by default).

linesimplify [OPTIONS]

Options

-t, --tolerance <tolerance>

Controls how far from the original geometry simplified points may lie.

-l, --layer <layer>

Target layer(s) or ‘all’.

linesort

Sort lines to minimize the pen-up travel distance.

Note: this process can be lengthy depending on the total number of line. Consider using linemerge before linesort to reduce the total number of line and thus significantly optimizing the overall plotting time.

linesort [OPTIONS]

Options

-f, --no-flip

Disable reversing stroke direction for optimization.

-l, --layer <layer>

Target layer(s) or ‘all’.

lmove

Move the content of one or more layer(s) to another layer.

SOURCES can be a single layer ID, the string ‘all’ (to copy all non-empty layers, or a coma-separated, whitespace-free list of layer IDs.

DEST can be a layer ID or the string ‘new’, in which case a new layer with the lowest available ID will be created.

Layer(s) left empty after the move are then discarded and may thus be reused by subsequent commands using ‘new’ as destination layer.

If a layer is both in the source and destination, its content is not duplicated.

Examples:

Merge layer 1 and 2 to layer 1 (the content of layer 1 is not duplicated):

vpype […] lmove 1,2 1 […] # merge layer 1 and 2 to layer 1

lmove [OPTIONS] SOURCES DEST

Arguments

SOURCES

Required argument

DEST

Required argument

multipass

Add multiple passes to each line

Each line is extended with a mirrored copy of itself, optionally multiple times. This is useful for pens that need several passes to ensure a good quality.

multipass [OPTIONS]

Options

-n, --count <count>

How many pass for each line (default: 2).

-l, --layer <layer>

Target layer(s) or ‘all’.

pagesize

Change the current page size.

The page size is set (or modified) by the read command and used by the write command by default. This command can be used to set it to an arbitrary value. See the write command help section for more information on valid size value (vpype write --help).

Note: this command only changes the current page size and has no effect on the geometries. Use the translate and scale commands to change the position and/or the scale of the geometries.

Examples:

Set the page size to A4:

vpype […] pagesize a4 […]

Set the page size to landscape A4:

vpype […] pagesize --landscape a4 […]

Set the page size to 11x15in:

vpype […] pagesize 11inx15in […]

pagesize [OPTIONS] SIZE

Options

-l, --landscape

Landscape orientation.

Arguments

SIZE

Required argument

random

Generate random lines.

By default, 10 lines are randomly placed in a square with corners at (0, 0) and (10mm, 10mm). Use the --area option to specify the destination area.

random [OPTIONS]

Options

-n, --count <n>

Number of lines to generate.

-a, --area <area>

Dimension of the area in which lines are distributed.

-l, --layer <layer>

Target layer or ‘new’.

read

Extract geometries from a SVG file.

By default, the read command attempts to preserve the layer structure of the SVG. In this context, top-level groups (<svg:g>) are each considered a layer. If any, all non-group, top-level SVG elements are imported into layer 1.

The following logic is used to determine in which layer each SVG top-level group is imported:

  • If a inkscape:label attribute is present and contains digit characters, it is stripped of non-digit characters the resulting number is used as target layer. If the resulting number is 0, layer 1 is used instead.

  • If the previous step fails, the same logic is applied to the id attribute.

  • If both previous steps fail, the target layer matches the top-level group’s order of appearance.

Using --single-layer, the read command operates in single-layer mode. In this mode, all geometries are in a single layer regardless of the group structure. The current target layer is used default and can be specified with the --layer option.

This command only extracts path elements as well as primitives (rectangles, ellipses, lines, polylines, polygons). Other elements such as text and bitmap images are discarded, and so is all formatting.

All curved primitives (e.g. bezier path, ellipses, etc.) are linearized and approximated by polylines. The quantization length controls the maximum length of individual segments.

Optionally, a line simplification with tolerance set to quantization can be applied on the SVG’s curved element (e.g. circles, ellipses, arcs, bezier curves, etc.). This is enabled with the --simplify flag. This process reduces significantly the number of segments used to approximate the curve while still guaranteeing an accurate conversion, but may increase the execution time of this command.

The --parallel option enables multiprocessing for the SVG conversion. This is recommended ONLY when using --simplify on large SVG files with many curved elements.

By default, the geometries are cropped to the SVG boundaries defined by its width and length attributes. The crop operation can be disabled with the --no-crop option.

In general, SVG boundaries are determined by the width and height of the top-level <svg> tag. However, the some SVG may have their width and/or height specified as percent value or even miss them altogether (in which case they are assumed to be set to 100%). In these cases, vpype considers by default that 100% corresponds to a A4 page in portrait orientation. The options --display-size FORMAT and --display-landscape can be used to specify a different format.

Examples:

Multi-layer import:

vpype read input_file.svg […]

Single-layer import:

vpype read --single-layer input_file.svg […]

Single-layer import with target layer:

vpype read --single-layer --layer 3 input_file.svg […]

Multi-layer import with specified quantization and line simplification enabled:

vpype read --quantization 0.01mm --simplify input_file.svg […]

Multi-layer import with cropping disabled:

vpype read --no-crop input_file.svg […]

read [OPTIONS] FILE

Options

-m, --single-layer

Single layer mode.

-l, --layer <layer>

Target layer or ‘new’ (single layer mode only).

-q, --quantization <quantization>

Maximum length of segments approximating curved elements (default: 0.1mm).

-s, --simplify

Apply simplification algorithm to curved elements.

-p, --parallel

Enable multiprocessing for SVG conversion.

-c, --no-crop

Do not crop the geometries to the SVG boundaries.

-ds, --display-size <display_size>

Display size to use for SVG with width/height expressed as percentage or missing altogether (see write command for possible format).

-dl, --display-landscape

Use landscape orientation ofr display size.

Arguments

FILE

Required argument

rect

Generate a rectangle, with optional rounded angles.

The rectangle is defined by its top left corner (X, Y) and its width and height.

Examples:

Straight-angle rectangle:

vpype rect 10cm 10cm 3cm 2cm show

Rounded-angle rectangle:

vpype rect --radii 5mm 5mm 5mm 5mm 10cm 10cm 3cm 2cm show

Rounded-angle rectangle with quantization control:

vpype rect --quantization 0.1mm --radii 5mm 5mm 5mm 5mm 10cm 10cm 3cm 2cm show

rect [OPTIONS] X Y WIDTH HEIGHT

Options

-r, --radii <radii>

Top-left, top-right, bottom-right and bottom-left corner radii.

-q, --quantization <quantization>

Maximum length of segments approximating the rounded angles.

-l, --layer <layer>

Target layer or ‘new’.

Arguments

X

Required argument

Y

Required argument

WIDTH

Required argument

HEIGHT

Required argument

reloop

Randomize the seam location of closed paths.

When plotted, closed path may exhibit a visible mark at the seam, i.e. the location where the pen begins and ends the stroke. This command randomizes the seam location in order to help reduce visual effect of this in plots with regular patterns.

Paths are considered closed when their beginning and end points are closer than some tolerance, which can be set with the --tolerance option.

reloop [OPTIONS]

Options

-t, --tolerance <tolerance>

Controls how close the path beginning and end must be to consider it closed (default: 0.05mm).

-l, --layer <layer>

Target layer(s) or ‘all’.

repeat

Stack geometries generated by the block N times on top of each other. N must always be provided as argument.

repeat [OPTIONS] NUMBER

Arguments

NUMBER

Required argument

rotate

Rotate the geometries (clockwise positive).

The origin used is the bounding box center, unless the --origin option is used.

ANGLE is in degrees by default, but alternative CSS unit may be provided.

By default, act on all layers. If one or more layer IDs are provided with the --layer option, only these layers will be affected. In this case, the bounding box is that of the listed layers.

rotate [OPTIONS] ANGLE

Options

-l, --layer <layer>

Target layer(s).

-o, --origin <origin_coords>

Use a specific origin.

Arguments

ANGLE

Required argument

scale

Scale the geometries by a factor.

The origin used is the bounding box center, unless the --origin option is used.

By default, act on all layers. If one or more layer IDs are provided with the --layer option, only these layers will be affected. In this case, the bounding box is that of the listed layers.

Example:

Double the size of the geometries in layer 1, using (0, 0) as origin:

vpype […] scale -l 1 -o 0 0 2 2 […]

scale [OPTIONS] SCALE...

Options

-l, --layer <layer>

Target layer(s).

-o, --origin <origin_coords>

Use a specific origin.

Arguments

SCALE

Required argument(s)

scaleto

Scale the geometries to given dimensions.

By default, the homogeneous scaling is applied on both X and Y directions, even if the geometry proportions are not the same as the target dimensions. When passing --fit-dimensions, the geometries are scaled such as to fit exactly the target dimensions, distorting them if required.

The origin used is the bounding box center, unless the --origin option is used.

By default, act on all layers. If one or more layer IDs are provided with the --layer option, only these layers will be affected. In this case, the bounding box is that of the listed layers.

Example:

Scale a SVG to a A4 page, accounting for 1cm margin:

vpype read input.svg scaleto 19cm 27.7cm write -p a4 -c output.svg

scaleto [OPTIONS] DIM...

Options

-l, --layer <layer>

Target layer(s).

-f, --fit-dimensions

Exactly fit target dimension, distorting geometries if required.

-o, --origin <origin_coords>

Use a specific origin.

Arguments

DIM

Required argument(s)

script

Call an external python script to generate geometries.

The script must contain a generate() function which will be called without arguments. It must return the generated geometries in one of the following format:

  • Shapely’s MultiLineString

  • Iterable of Nx2 numpy float array

  • Iterable of Nx1 numpy complex array (where the real and imag part corresponds to the x, resp. y coordinates)

All coordinates are expected to be in SVG pixel units (1/96th of an inch).

script [OPTIONS] FILE

Options

-l, --layer <layer>

Target layer or ‘new’.

Arguments

FILE

Required argument

show

Display the geometry in an graphical user interface.

By default, this command use a modern, hardware-accelerated viewer (currently in beta) with a preview mode (adjustable pen width and opacity) and interactive controls to adjust display options. This viewer requires OpenGL 3.3 support.

The original, Matplotlib-based viewer is still available with the --classic option. The classic viewer does not have interactive controls for display options. Use the command-line options to customize the display.

show [OPTIONS]

Options

--classic

Use the classic viewer.

-p, --show-pen-up

Display pen-up trajectories.

-d, --show-points

Display paths points with dots.

-o, --outline

Display in outline mode (modern only).

-c, --colorful

Display in outline colorful mode (takes precedence over --outline).

-a, --show-axes

Display axes (classic only).

-g, --show-grid

Display grid (implies -a, classic only).

-h, --hide-legend

Do not display the legend (classic only).

-u, --unit <unit>

Units of the plot (when --show-grid is active, classic only).

skew

Skew the geometries.

The geometries are sheared by the provided angles along X and Y dimensions.

ANGLE is in degrees by default, but alternative CSS unit may be provided.

The origin used in the bounding box center, unless the --centroid or --origin options are used.

skew [OPTIONS] ANGLES...

Options

-l, --layer <layer>

Target layer(s).

-o, --origin <origin_coords>

Use a specific origin.

Arguments

ANGLES

Required argument(s)

snap

Snap all points to a grid with with a spacing of PITCH.

This command moves every point of every paths to the nearest grid point. If sequential points of a segment end up on the same grid point, they are deduplicated. If the resulting path contains less than 2 points, it is discarded.

Example:

Snap all points to a grid of 3x3mm:

vpype […] snap 3mm […]

snap [OPTIONS] PITCH

Options

-l, --layer <layer>

Target layer(s) or ‘all’.

Arguments

PITCH

Required argument

splitall

Split all paths into their constituent segments.

This command may be used together with linemerge for cases such as densely-connected meshes where the latter cannot optimize well enough by itself. This command will filter out segments with identical end-points.

Note that since some paths (especially curved ones) can be made of a large number of segments, this command may significantly increase the processing time of the pipeline.

splitall [OPTIONS]

Options

-l, --layer <layer>

Target layer(s) or ‘all’.

stat

Print human-readable statistics on the current geometries.

stat [OPTIONS]

translate

Translate the geometries. X and Y offsets must be provided. These arguments understand supported units.

translate [OPTIONS] OFFSET...

Options

-l, --layer <layer>

Target layer(s) or ‘all’.

Arguments

OFFSET

Required argument(s)

trim

Trim the geometries by some margin.

This command trims the geometries by the provided X and Y margins with respect to the current bounding box.

By default, trim acts on all layers. If one or more layer IDs are provided with the --layer option, only these layers will be affected. In this case, the bounding box is that of the listed layers.

trim [OPTIONS] MARGIN_X MARGIN_Y

Options

-l, --layer <layer>

Target layer(s).

Arguments

MARGIN_X

Required argument

MARGIN_Y

Required argument

write

Save geometries to a file.

The write command support two format: SVG and HPGL. The format is determined based on the file extension used for OUTPUT or the --file-format option. The latter is useful when OUTPUT is a single dash (-), in which case the output is printed to stdout instead of a file.

When writing to SVG, the current page size is used if available. The current page size is implicitly set by the read command and can also be manually changed using the pagesize command. The page size can be overridden using the --page-size SIZE option. SIZE may be one of:

tight, a6, a5, a4, a3, a2, a1, a0, letter, legal, executive, tabloid

Alternatively, a custom size can be specified in the form of WIDTHxHEIGHT. WIDTH and HEIGHT may include units. If only one has an unit, the other is assumed to have the same unit. If none have units, both are assumed to be pixels by default. Here are some examples:

--page-size 11x14in # 11in by 14in
--page-size 1024x768 # 1024px by 768px
--page-size 13.5inx4cm # 13.5in by 4cm

When a page size is provided, it will be rotated if the --landscape option is used.

If the current page set has not been set (e.g. because the read command has not been used) and the --page-size is not provided, the SVG will have its bounds tightly fit to the geometries.

By default, the geometries are not scaled or translated even if they lie outside of the page boundaries. The --center option translates the geometries to the center of the page.

Layers are labelled with their numbers by default. If an alternative naming is required, a template pattern can be provided using the --layer-label option. The provided pattern must contain a C-style format specifier such as %d which will be replaced by the layer number.

For previsualization purposes, paths are colored by layer in the SVG. This can be controlled with the --color-mode option. Setting it “none” disables coloring and black paths are generated. Setting it to “path” gives a different color to each path (with a rotation), which makes it easier to visualize line optimization. Finally, pen-up trajectories can be generated with the --pen-up flag. As most plotting tools will include these paths in the output, this option should be used for previsualisation only. The Axidraw tools will however ignore them.

When writing to HPGL, a device name must be provided with the --device option. The corresponding device must be configured in the built-in or a user-provided configuration file (see the documentation for more details). The following devices are currently available:

hp7475a, designmate, hp7440a

In HPGL mode, this command will try to infer the paper size to use based on the current page size (the current page size is set by the read command based on the input file and can be manually set or changed with the pagesize or layout command). An error will be displayed if no corresponding paper size if found. Use the --page-size option with a format defined in the device’s configuration to manually specify with paper size to use.

The plotter may need to be specifically configured for the desired paper size (e.g. for A4 or A3, the HP 7475a’s corresponding DIP switch must be set to metric mode). A note will be displayed as a reminder and can be hidden using the --quiet option.

The --landscape and --center options are accepted and honored in HPGL.

Optionally, the HPGL-only --velocity can be provided, in which case a VS command will be emitted with the provided value.

Examples:

Write to a SVG using the current page size as set by the read command:

vpype read input.svg […] write output.svg

Write to a portrait A4 page:

vpype […] write --page-size a4 output.svg

Write to a 13x9 inch page and center the geometries:

vpype […] write --page-size 13x9in --landscape --center output.svg

Use custom layer labels:

vpype […] write --page-size a4 --layer-label “Pen %d” output.svg

Write a previsualization SVG:

vpype […] write --pen-up --color-mode path output.svg

Output SVG to stdout:

vpype […] write --format SVG -

Write a A4 page with portrait orientation HPGL file:

vpype […] write --device hp7475a --page-size a4 --center

write [OPTIONS] OUTPUT

Options

-f, --format <file_format>

Output format (inferred from file extension by default).

Options

svg|hpgl

-p, --page-size <page_size>

Set the bounds of the SVG to a specific page size. If omitted, the SVG size is set to the current page size (see read and pagesize commands. May not be omitted for HPGL.

-l, --landscape

Use landscape orientation instead of portrait.

-c, --center

Center the geometries within the SVG bounds.

-ll, --layer-label <layer_label>

[SVG only] Pattern used to for naming layers.

-pu, --pen-up

[SVG only] Generate pen-up trajectories.

-m, --color-mode <color_mode>

[SVG only] Color mode for paths (default: layer).

Options

none|layer|path

-d, --device <device>

[HPGL only] Type of the plotter device.

-vs, --velocity <velocity>

[HPGL only] Emit a VS command with the provided value.

-q, --quiet

[HPGL only] Do not display the plotter configuration or paper loading information.

Arguments

OUTPUT

Required argument