Scan2CAD Python API¶
Quickstart¶
Extract raster images from PDF files:
in_dir = "path/to/input_directory"
pdfs = s2c.list(in_dir, "pdf")
for p in pdfs:
pp = p.open()
pp.save(s2c.FileType.RASTER, s2c.join(in_dir, p.get_name()))
Vectorize images in a directory:
in_dir = "path/to/input_directory"
preset = s2c.Preset()
imgs = s2c.list(in_dir, "png")
for i in imgs:
r = i.open()
v = r.vectorize(preset)
v.save(r.path)
Example scripts¶
List of classes¶
Classes used for accessing files¶
- class s2c.FilePath(path)¶
Holds file’s path. Use this to load files with
open()method.Currently we support three types of files:
Raster(),Vector(),PDF().- get_path()¶
Retruns path provided during initialization (can be relative or absolute)
- get_absolute_path()¶
Returns absolute path
- get_full_name()¶
Returns name with extension
- get_name()¶
Returns name without extension
- get_type()¶
Returns file extension
- class s2c.File(path)¶
Base class for all file types that are supported
- class s2c.Raster(path: FilePath)¶
Class representing raster files
- threshold(value=127)¶
Applies threshold raster effect on this image
- segment(colors=6, definition=3)¶
Applies segment raster effect on this image
- rotate90(clockwise=True)¶
Rotates raster image by 90 degrees in requested direction
- remove_speckles_and_holes(speckle_size, hole_size)¶
Applies raster effect: remove speckles and holes
- smooth()¶
Applies raster effect: smooth
- auto_deskew()¶
Applies raster effect: auto deskew
- thicken()¶
Applies raster effect: thicken
- thin(level)¶
Applies raster effect: thin
- save(path=None)¶
Saves this raster image under the given path
- class s2c.Vector(path)¶
- scale(length_in_pixels, length_in_unit, unit: Unit)¶
Sets vector scale in requested unit
- save(path=None, type=1)¶
Saves this vector image under the given path
- exportToPdf(path)¶
Saves this vector image to PDF file
- rasterize(path)¶
Saves this vector to as raster file
- class s2c.PDF(path)¶
Class representing PDF files
Loads PDF file using provided FilePath instance
- save(type, path)¶
Saves PDF file in one of supported formats, see
FileType()class
Utilities¶
- class s2c.list(path, extension='')¶
Lists files in the directory.
- Parameters:
extension – can be a string or a list of strings.
- class s2c.join(path, *paths)¶
Joins paths together using platform-specific path separators
- class s2c.PDFsInDirToDxfs(in_dir, out_dir)¶
Extracts vector data in DXF format from all PDF files in the directory
- class s2c.FileType¶
Enumeration with all types supported by FilePath and File (Raster, Vector, PDF)
- RASTER = 0¶
- VECTOR = 1¶
- PDF = 2¶
- class s2c.Preset¶
Structure used to define settings used in vectorization
- In order to change advanced settings, modify these members:
self.technical,self.ocr,self.outline,self.solid.
- class Predefined¶
- Architectural = 1¶
- Electrical = 2¶
- Mechanical = 3¶
- CNCProfile = 4¶
- SitePlan = 5¶
- ContourMap = 6¶
- Sketch = 7¶
- Outline = 8¶
- class Languages¶
- English = 1¶
- German = 2¶
- French = 3¶
- Italian = 4¶
- Japanese = 5¶
- JapaneseEnglish = 6¶
- Polish = 7¶
- Spanish = 8¶
- class Technical¶
Structure holding additional settings for Technical vectorization
- polyline_identification = False¶
- line_width = 14¶
- line_deviation_factor = 2.2¶
- arc_identification = True¶
- arc_min_radius = 6¶
- bezier_identification = False¶
- circle_identification = True¶
- circle_radius = 6¶
- arrow_identification = True¶
- arrow_max_head_length = 64¶
- dash_line_identification = True¶
- dash_line_max_length = 45¶
- dash_line_max_gap = 45¶
- hatch_identification = True¶
- hatch_angle = 45¶
- hatch_angle_tolerance = 12¶
- orthogonal_snap = True¶
- orthogonal_snap_tolerance = 8¶
- snap_to_30 = False¶
- snap_to_45 = False¶
- snap_to_60 = False¶
- snap_to_120 = False¶
- snap_to_135 = False¶
- snap_to_150 = False¶
- snap_tolerance = 8¶
- corner_snap = 8¶
- corner_snap_tolerance = 6¶
- pass_thro_snap = 3¶
- gap_jump_distance = 4¶
- loose_ends_length = 7¶
- connect_thro_vectors = True¶
- class OCR¶
Structure holding additional settings for OCR
- char_size_max = 75¶
- char_size_min = 9¶
- recognition = 60¶
- exclude_intersecting = True¶
- vertical = False¶
- angular = False¶
- document_is_only_text = False¶
- class Outline¶
Structure holding additional settings for Outline vectorization
- definition = 20¶
- bias_orthogonal = False¶
- bias = 2¶
- type = 4¶
- class Solid¶
Structure holding additional settings for Solid vectorization
- definition = 5¶
- identify_circles = True¶
- bias_orthogonal = False¶
- bias = 2¶
- type = 2¶
- method = 1¶
Determines vectorization mode.
- option = 1¶
Determines option type (relevant only for Technical vectorization).
- language = 1¶
Determines OCR language (relevant only when OCR is enabled).
- color = False¶
If enabled output vector will contain color. Ingored for
Method.Solid().
- load(pre: Predefined)¶
Preloads chosen preset