Giter Site home page Giter Site logo

vector-express / vectorexpress-api Goto Github PK

View Code? Open in Web Editor NEW
88.0 3.0 13.0 219 KB

Vector Express is a free service and API for converting, analyzing and processing vector files.

Home Page: https://vector.express

dwg dxf eps svg vector-graphics vector converting-vector-files converter pdf svgo

vectorexpress-api's Introduction

Logo

Vector Express - Free Vector Conversion, Analyzing and Processing API

Recent updates

  • New /get-svg-unit/ analyzer
  • New /cad2pdf/ and /cad2svg/ converter
  • /cad/ converter deprecated, replaced with /svg2cad/ converter
  • Internal improvements
  • /ungroup/ processor now has a "selector" parameter
  • New /change-attribute/ and /xslt/ processor
  • New /fix-illustrator-svg-font-names/ processor

Read more: https://vector.express/pricing

API Frontend: https://vector.express

Vector Express is a free-to-use API for converting, analyzing and processing vector files. Made with love by @vector_express

It runs a combination of different conversion programs that can be chained together to convert between a wide area of formats.

Format ai cdr dwg dxf eps hpgl pdf plt ps svg
In
Out

Feel free to use it in your project. It does not support CORS, so you need to run it through/on a back-end.

💌 Stay updated

You can sign up to our newsletter here to be informed about new features, upcoming changes and deprecations: https://buttondown.email/vector.express

Table of Contents

🏃‍♀️ Quickstart

Run in Postman

  1. GET the a compatible conversion path for your input format and desired output format.

curl https://vector.express/api/v2/public/convert/dxf/auto/svg/

  1. POST to the the first path, with your file as the body

curl --data-binary @myvector.dxf https://vector.express/api/v2/public/convert/dxf/cadlib/svg/

  1. GET the file from the resultUrl

curl https://vector.express/api/v2/public/files/[id].svg --output converted.svg

🪄 Convert

By requesting the conversion paths you can find out the most efficient path between your formats.

GET https://vector.express/api/v2/public/convert/ext/auto/ext

You can up chain to three programs in the conversion path, and even configure them. See below for all programs and their options.

POST https://vector.express/api/v2/public/convert/ext/prog1/ext/prog2/ext?prog1-opt=val&prog2-opt=val

Available converters

A converter for converting dwg and dxf cad files into pdf.

Format ai cdr dwg dxf eps hpgl pdf plt ps svg
In
Out
Option Type Description 
cad2pdf-auto-fit Boolean Automatically fit the drawing to to the paper size
cad2pdf-auto-orientation Boolean Automatically orient the drawing to fit the paper
cad2pdf-center Boolean Center the drawing
cad2pdf-point-size Number Point size in mm
cad2pdf-grayscale Boolean Grayscale
cad2pdf-landscape Boolean Use landscape paper
cad2pdf-margin Number Margin in millimeter
cad2pdf-paper-size String Paper size in the format "WxH"
cad2pdf-scale Number Scale the drawing
cad2pdf-unit String Override the drawing's unit (in/m/mm)

A converter for converting dwg and dxf cad files into svg.

Format ai cdr dwg dxf eps hpgl pdf plt ps svg
In
Out
Option Type Description 
cad2svg-expand-page-for-stroke-width Boolean Expand the page to accomodate the stroke width
cad2svg-block String Export a specific block
cad2svg-margin Number Margin
cad2svg-include-bitmaps Boolean Include bitmaps in the export
cad2svg-layers String Comma delimted list of layers to export
cad2svg-unit String Override the drawing's unit (in/m/mm)

Custom CadLib based converter for AutoCAD files.

Format ai cdr dwg dxf eps hpgl pdf plt ps svg
In
Out ✓ *1

*1 Arcs and curves are converted to lines

Option Type Description 
cadlib-epsilon Number
cadlib-arc-segments Number Line segment amount on arcs
cadlib-arc-segments-minimum Number The minimum amount of segments on arc
cadlib-space-strategy String Which ACAD space to prefer for export
prefer_native_space / prefer_paper_space / prefer_model_space

Ghostscript based converter.

Format ai cdr dwg dxf eps hpgl pdf plt ps svg
In
Out

hp2xx based converter for postscript.

Format ai cdr dwg dxf eps hpgl pdf plt ps svg
In
Out

libcdr based converter for CorelDRAW files.

Format ai cdr dwg dxf eps hpgl pdf plt ps svg
In
Out

librsvg based converter for converting svg files to various formats.

Format ai cdr dwg dxf eps hpgl pdf plt ps svg
In
Out

pdf2svg based converter for pdf files to svg.

Format ai cdr dwg dxf eps hpgl pdf plt ps svg
In
Out
Option Type Description 
pdf2svg-page Number Which page to export

pstoedit for converting eps files to dxf.

Format ai cdr dwg dxf eps hpgl pdf plt ps svg
In
Out
Option Type Description 
pstoedit-page Number Which page to export
pstoedit-xscale Number X scale
pstoedit-yscale Number Y scale
pstoedit-xshift Number X shift
pstoedit-yshift Number Y shift
pstoedit-centered Boolean Center drawing
pstoedit-rgb Boolean

For converting svg files into dxf or dwg cad files.

Format ai cdr dwg dxf eps hpgl pdf plt ps svg
In
Out
Option Type Description 
svg2cad-nojoin Boolean If enabled, do not join adjacent lines
svg2cad-version String Which AutoCAD version to use
R32 / R27 / R24 / R21 / R18 / R15 / R14

SVGO is an svg optimizer.

Format ai cdr dwg dxf eps hpgl pdf plt ps svg
In
Out
Option Type Description 
svgo-config String JSON string of configuration, representing the default export configuration object. This overrides all other configuration parameters if set
svgo-configSvgo2Syntax Boolean Enable this to use the SVGO 2.0 configuration syntax, otherwise v1 syntax will be used
svgo-enable String Which plugins to enable (see SVGO docs)
svgo-disable String Which plugins to disable (see SVGO docs)
svgo-indent String
svgo-pretty Boolean Prettify code
svgo-precision Number Precision
svgo-multipass Boolean

Uniconvertor based converter for various formats.

Format ai cdr dwg dxf eps hpgl pdf plt ps svg
In
Out

You can analyze vector files using this endpoint. The result is always a json file. The analyzers can be configured through the query string.

POST https://vector.express/api/v2/public/analyze/ext/analyzer

POST https://vector.express/api/v2/public/analyze/ext/analyzer1?analyzer-opt1=val&analyzer-opt2=val

Gets the unit from an svg document. Also returns an explicit parameter which is true if the unit is explicitly set. (otherwise the unit is px, as per the svg standard)

Returns a list of all groups in an svg.

Simulates 2D linear movement along all paths in the svg. This can be used for 2D CNC estimation, for example laser cutting, routing, knife cutting and more.

Option Type Description 
linearmovement-jerk Number An arbitrary unit setting the amount of jerk in the movement. Higher number = less deceleration around tight corners.
linearmovement-mm-per-s Number The speed to move along the paths, in mm/s.
linearmovement-drawing-unit String Which unit the SVG is drawn in.
mm / in / pt / px
linearmovement-path-info Boolean If enabled, information about individual paths and path segments are included in the outputs.

You can process vector files using this endpoint. The processors can be configured through the query string.

POST https://vector.express/api/v2/public/process/ext/processor

POST https://vector.express/api/v2/public/process/ext/processor?processor-opt1=val&processor-opt2=val

Performs a boolean operation on target element(s) using tool element(s).

Keep in mind that this will not work on grouped elements and/or non-path elements. Please run the convert-to-path and ungroup processors on the drawing first.

Option Type Description 
boolean-operation-operation String Which operation to perform. Default is union.
union / difference / intersection / exclusion / division / cut-path / combine / break-apart
boolean-operation-tool-paths String XPath selector* to define the elements to use as the tool. Default is "//svg:path".
boolean-operation-target-paths String XPath selector* to define the elements to use as the target. Default is "//svg:path".

* Please note that elements need to be prefixed with svg: to match the SVG namespace. E.g. to select all elements elements with a white-fill style: //svg:path[contains(@style,'#ffffff')

Allows modification of attributes or inline CSS properties on certain elements. This can be used to set fill, stroke and many other parameters. You can also use an existing attribute value to set the new one. (For example, setting an outline to match the fill of a path)

Option Type Description 
change-attribute-set-attr String Which attribute to set. Required.
change-attribute-target-elements String Which set of element types to affect, separated with a comma. Required.
change-attribute-to-value String What value to set the attribute to.
change-attribute-to-attr-value String This can be set to get the value from another attribute on the same element. If this is set, "to-value" is ignored.
change-attribute-to-attr-value-fallback String An optional fallback to set the attribute to if the attribute from "to-attr-value" has no value.
change-attribute-override String If this is set, the value will always be set. If used in combination with not setting "to-value" or "to-attr-value", it will remove the attribute.

Converts elements (text*, circle, rectangles, etc.) to paths. If your SVG file is exported from Adobe Illustrator, consider running the fix-illustrator-svg-font-names processor first.

Option Type Description 
convert-to-path-selector String XPath selector** to define which elements to convert. Default is "//svg:*".

* A selection of open source fonts are compatible. Contact us if you need to convert an unsupported font.
** Please note that elements need to be prefixed with svg: to match the SVG namespace. E.g. to select all elements with a white-fill style: //svg:path[contains(@style,'#ffffff')

Excludes certain groups from an SVG.

Option Type Description 
exclude-groups-groups String A list of group ID's to exclude, separated using the NUL syntax (%00)

Flattens beziers curves into straight lines.

Option Type Description 
flatten-beziers-selector String XPath selector* to select which path element's beziers to flatten.

* Please note that elements need to be prefixed with svg: to match the SVG namespace. E.g. to select all elements elements with a white-fill style: //svg:path[contains(@style,'#ffffff')

Attempts a correction of Adobe Illustrator's incorrectly exported font-family tag attribute/CSS property. For example, it will turn font-family="OpenSans-Bold" into font-family="OpenSans" font-weight="bold".

This is required for the convert-to-path processor to work.

Includes only certain groups from an SVG.

Option Type Description 
include-only-groups–groups String A list of group ID's to include, separated using the NUL syntax (%00)

Ungroups all elements and nested SVG's recursively. If you require a higher depth than 10, you can make multiple calls.

Option Type Description 
ungroup-depth Number The depth to ungroup, 1 - 10. Default is 10.
ungroup-selector String XPath selector* to select certain groups or nested SVG's. If this is set, "depth" is ignored

* Please note that elements need to be prefixed with svg: to match the SVG namespace. E.g. to select all elements elements with a white-fill style: //svg:path[contains(@style,'#ffffff')

Returns a section of an SVG file using the XPath syntax.

Option Type Description 
xpath-xpath String The XPath selector
xpath-text-output Boolean If true, the resulting file is a .txt, otherwise it is an .xml file
xpath-add-root Boolean Whether or not to add the root element

Exclude certain elements with XSLT. This can be used to remove unwanted defs, specific elements and more.

Option Type Description 
xslt-exclude-xpath String The XPath * syntax selector to exclude from the document.

* Please note that elements need to be prefixed with svg: to match the SVG namespace. E.g. to select all elements elements with a white-fill style: //svg:path[contains(@style,'#ffffff')

After getting the result you can retrieve your files here.

GET https://vector.express/api/v2/public/files/filename.ext

You can also use an already uploaded or resulting file through the use-file query string.

POST https://vector.express/api/v2/public/convert/ext/prog1/ext/prog2?use-file=filename.ext

🛑 Limits

Currently the public API is limited to 5 requests per hour, and a maximum output filesize of 1 MiB and certain CPU and memory limitations.

We offer a pay-as-you go plan that removes the rate limit and increases maximum file to 40 MiB.

Get in touch with us and we'll see what we can do!

Feel free to open up an issue, or just tweet at us @vector_express.

vectorexpress-api's People

Contributors

corrideat avatar franksandqvist avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

vectorexpress-api's Issues

Purchased pay as you go but got nothing

Hi,

I purchased a pay as you go plan through vector.express and received no account information or API key. I've emailed the sales email address but had no reply.

Is this project legit and active?

SVG conversion seems to be broken (502 errors) from both API and website

Hello. This is a dupe of issue 5, but with additional details that the API also seems to be down.

SVG conversion seems to be nonfunctional from both the web UI and the API.

Web UI:
image

API:

curl --data @./svg/volume.svg https://vector.express/api/v2/public/convert/svg/svg2cad/dxf/

Returns:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1145    0   553  100   592   2118   2268 --:--:-- --:--:-- --:--:--  4386<html>
<head><title>502 Bad Gateway</title></head>
<body bgcolor="white">
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx</center>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vaafb692b2aea4879b33c060e79fe94621666317369993" integrity="sha512-0ahDYl866UMhKuYcW078ScMalXqtFJggm7TmlUtp0UlD4eQk0Ixfnm5ykXKvGJNFjLMoortdseTfsRT8oCfgGA==" data-cf-beacon='{"rayId":"76fceffccdfc0e9e","version":"2022.11.3","r":1,"token":"f51c5df7e477416cbe5721db4a17ac57","si":100}' crossorigin="anonymous"></script>
</body>
</html>

How to use API

Dear Vector Express,
Could you please write more detail about the API to call with full link to API?
I want to buy but I don't know how to use your API by python language.
Thank you very much

504 error with SVG to DXF conversion (https://vector.express/)

Hi,

Using vector.express frontend API, I'm trying to convert attached SVG to DXF. After a while server returns a 504 error (see attached). I can convert this SVG to DXF with Illustrator without any issue, but I'm lloking for an API.

Thanks in advance for your help

Frank

error

Genealogie_Grand_Black Aluminium_20221025

Not found trying to download resultUrl

I am sending this petition with headers and data set in the request:
https://vector.express/api/v2/public/convert/dwg/cad2svg/svg?cad2svg-layers=POLY-TEN
The result of the request is:
{"id":"9d219ff3-aa7d-4726-b29c-49b4d44d61e5","inputUrl":"https://vector.express/api/v2/public/files/1f1b0adf-a08f-4c55-a7a8-f8bcdefffc8f.dwg","resultUrl":"https://vector.express/api/v2/public/files/357784ee-15a2-4373-8e9e-99b4fa7d5222.svg","time":4469,"format":"svg","tasks":[{"resultUrl":"https://vector.express/api/v2/public/files/357784ee-15a2-4373-8e9e-99b4fa7d5222.svg","format":"svg","time":4464}]}
When I cURL the resultURL, I get that Not found:
curl https://vector.express/api/v2/public/files/357784ee-15a2-4373-8e9e-99b4fa7d5222.svg --output converted.svg

Error "An error occurred during conversion" when using SVGO

Hi,

we want to use the Vector Express API to optimize our SVG files being uploaded to WordPress. I use wp_remote_post and curl_file_create to POST everything to the API. But everytime there's an error like:

[message] => An error occurred during conversion
[chainId] => f2853966-01a4-4f7e-9e79-e14c7bdc9855
[program] => svgo
[inputFormat] => svg
[outputFormat] => svg

The same error occurs when I use curl via the command line.
What I'm unsure about is whether I need to pass the parameters or if they are optional.

Payment made without response

Hey, I signed up using my email address ([redacted]) and never got a response after signing up and making the payment. I've reached out via email, but didn't get any response there, either. Is this a dead and zombie project now? (Which would be too bad, 'cause I like the API)

Detect non-vector images?

Is there a way to detect if a file contains non-vector images? Many vector files can contain embedded image files and I'd like to analyze them so that I can reject files with embedded images.

Cheers!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.