| Crates.io | vsvg-cli |
| lib.rs | vsvg-cli |
| version | 0.5.0 |
| created_at | 2023-09-29 19:46:08.519347+00 |
| updated_at | 2024-09-21 09:52:00.215113+00 |
| description | An experimental CLI SVG manipulation and viewer tool for plotter users. |
| homepage | https://github.com/abey79/vsvg |
| repository | https://github.com/abey79/vsvg |
| max_upload_size | |
| id | 987807 |
| size | 158,329 |
This crate is part of the vsvg project.
Status: Highly experimental, and likely superseeded in the future by a vsvg-powered vpype 2.0. Still somewhat usable.
vsvg-cli is a vpype-like pipeline-ish CLI wrapper over vsvg. Its primary purpose is to serve as test bed for vsvg and vsvg-viewer.
A number of pre-built binaries and installers are available on the Release page, including shell/PowerShell-based installers, binary archives for most platforms, and MSI archives for Windows.
To install the vsvg CLI, you'll need Rust, which you can install using rustup.
Then, run the following command:
cargo install vsvg-cli
Build and install vsvg-cli:
The vsvg command should now be available:
vsvg --help
To uninstall the vsvg CLI:
cargo uninstall vsvg-cli
No documentation is currently available for vsvg-cli, and likely none will ever be. Use the integrated help:
vsvg --help
This is the output as of mid-September 2023:
An experimental SVG viewer for plotter users.
Usage: vsvg [OPTIONS] <PATH>
Arguments:
<PATH> Path to the SVG file (or '-' for stdin)
Options:
--single Single layer mode
--no-show Don't show the GUI
-v, --verbose Enable debug output
-h, --help Print help
-V, --version Print version
COMMANDS:
-t, --translate <X> <X>
Translate by provided coordinates
-R, --rotate-rad <X>
Rotate by X radians around the origin
-r, --rotate <X>
Rotate by X degrees around the origin
-s, --scale <X>...
Uniform (X) or non-uniform (X Y) scaling around the origin
--scale-around <X> <X> <X> <X>
Scale around the provided point
-c, --crop <X> <X> <X> <X>
Crop to provided XMIN, YMIN, XMAX, YMAX
--linesort <FLIP>
Reorder paths to minimize pen-up distance [possible values: true, false]
--linesortnoflip <THRES>
Reorder paths to minimize pen-up distance
--linesortflip <THRES>
Reorder paths to minimize pen-up distance
--dlayer <X>
Set target layer for draw operations
--dtranslate <X> <X>
Apply an X, Y translation to the current transform
--drotate <X>
Apply a rotation to the current transform
--dscale <X>...
Apply a uniform (X) or non-uniform (X, Y) scale to the current transform
--dskew <X> <X>
Apply a (X, Y) skew to the current transform
--dcbez <X> <X> <X> <X> <X> <X> <X> <X>
Draw a cubic bezier curve with X, Y, X1, Y1, X2, Y2, X3, Y3
--dqbez <X> <X> <X> <X> <X> <X>
Draw a quadratic bezier curve with X, Y, X1, Y1, X2, Y2
--darc <X> <X> <X> <X> <X> <X> <X>
Draw an arc with X, Y, RX, XY, START, SWEEP, ROT_X
--dcircle <dcircle> <dcircle> <dcircle>
Draw a circle with X, Y, R
--dellipse <dellipse> <dellipse> <dellipse> <dellipse> <dellipse>
Draw an ellipse with X, Y, RX, RY, ROT_X
--dline <X> <X> <X> <X>
Draw a line with X, Y, X1, Y1
--drect <X> <X> <X> <X>
Draw a rectangle with X, Y, W, H
--drrect <X> <X> <X> <X> <X> <X> <X> <X>
Draw a rounded rectangle with X, Y, W, H, TL, TR, BR, BL
--dsvg <X>
Draw from an SVG path representation
--write <FILE>
Write the current document to a file
--stats <stats>
Print stats [possible values: true, false]