Module: Postsvg

Defined in:
lib/postsvg.rb,
lib/postsvg/cli.rb,
lib/postsvg/svg.rb,
lib/postsvg/color.rb,
lib/postsvg/model.rb,
lib/postsvg/colors.rb,
lib/postsvg/errors.rb,
lib/postsvg/matrix.rb,
lib/postsvg/parser.rb,
lib/postsvg/source.rb,
lib/postsvg/options.rb,
lib/postsvg/version.rb,
lib/postsvg/renderer.rb,
lib/postsvg/visitors.rb,
lib/postsvg/converter.rb,
lib/postsvg/svg/paint.rb,
lib/postsvg/tokenizer.rb,
lib/postsvg/serializer.rb,
lib/postsvg/svg/parser.rb,
lib/postsvg/svg/stroke.rb,
lib/postsvg/interpreter.rb,
lib/postsvg/model/token.rb,
lib/postsvg/svg/element.rb,
lib/postsvg/svg_builder.rb,
lib/postsvg/translation.rb,
lib/postsvg/path_builder.rb,
lib/postsvg/source/lexer.rb,
lib/postsvg/svg/document.rb,
lib/postsvg/svg/elements.rb,
lib/postsvg/format_number.rb,
lib/postsvg/model/program.rb,
lib/postsvg/svg/path_data.rb,
lib/postsvg/svg_generator.rb,
lib/postsvg/graphics_stack.rb,
lib/postsvg/graphics_state.rb,
lib/postsvg/model/literals.rb,
lib/postsvg/model/operator.rb,
lib/postsvg/model/operators.rb,
lib/postsvg/graphics_context.rb,
lib/postsvg/parser/transform.rb,
lib/postsvg/svg/elements/svg.rb,
lib/postsvg/svg/elements/defs.rb,
lib/postsvg/svg/elements/line.rb,
lib/postsvg/svg/elements/path.rb,
lib/postsvg/svg/elements/rect.rb,
lib/postsvg/svg/elements/text.rb,
lib/postsvg/model/literals/hex.rb,
lib/postsvg/source/ast_builder.rb,
lib/postsvg/svg/elements/group.rb,
lib/postsvg/svg/elements/image.rb,
lib/postsvg/svg/transform_list.rb,
lib/postsvg/model/literals/name.rb,
lib/postsvg/svg/elements/circle.rb,
lib/postsvg/translation/context.rb,
lib/postsvg/visitors/ps_visitor.rb,
lib/postsvg/model/literals/array.rb,
lib/postsvg/model/operators/font.rb,
lib/postsvg/model/operators/path.rb,
lib/postsvg/source/operand_stack.rb,
lib/postsvg/svg/attribute_parser.rb,
lib/postsvg/svg/elements/ellipse.rb,
lib/postsvg/svg/elements/polygon.rb,
lib/postsvg/svg/path_data/parser.rb,
lib/postsvg/translation/handlers.rb,
lib/postsvg/model/literals/number.rb,
lib/postsvg/model/literals/string.rb,
lib/postsvg/model/operators/color.rb,
lib/postsvg/model/operators/stack.rb,
lib/postsvg/svg/elements/polyline.rb,
lib/postsvg/svg/path_data/command.rb,
lib/postsvg/model/operators/device.rb,
lib/postsvg/svg/clip_path_registry.rb,
lib/postsvg/svg/elements/clip_path.rb,
lib/postsvg/model/operators/boolean.rb,
lib/postsvg/translation/ps_renderer.rb,
lib/postsvg/model/literals/procedure.rb,
lib/postsvg/model/operators/painting.rb,
lib/postsvg/parser/postscript_parser.rb,
lib/postsvg/translation/bounding_box.rb,
lib/postsvg/visitors/ps_visitor/font.rb,
lib/postsvg/visitors/ps_visitor/path.rb,
lib/postsvg/model/literals/dictionary.rb,
lib/postsvg/model/operators/container.rb,
lib/postsvg/translation/arc_converter.rb,
lib/postsvg/visitors/ps_visitor/color.rb,
lib/postsvg/visitors/ps_visitor/stack.rb,
lib/postsvg/model/operators/arithmetic.rb,
lib/postsvg/model/operators/dictionary.rb,
lib/postsvg/translation/record_emitter.rb,
lib/postsvg/visitors/ps_visitor/common.rb,
lib/postsvg/visitors/ps_visitor/device.rb,
lib/postsvg/translation/handlers/shared.rb,
lib/postsvg/visitors/ps_visitor/boolean.rb,
lib/postsvg/model/operators/control_flow.rb,
lib/postsvg/translation/handler_registry.rb,
lib/postsvg/visitors/ps_visitor/painting.rb,
lib/postsvg/visitors/ps_visitor/container.rb,
lib/postsvg/model/operators/graphics_state.rb,
lib/postsvg/visitors/ps_visitor/arithmetic.rb,
lib/postsvg/visitors/ps_visitor/dictionary.rb,
lib/postsvg/model/operators/transformations.rb,
lib/postsvg/translation/handlers/svg_handler.rb,
lib/postsvg/visitors/ps_visitor/control_flow.rb,
lib/postsvg/translation/handlers/defs_handler.rb,
lib/postsvg/translation/handlers/line_handler.rb,
lib/postsvg/translation/handlers/open_handler.rb,
lib/postsvg/translation/handlers/path_handler.rb,
lib/postsvg/translation/handlers/rect_handler.rb,
lib/postsvg/translation/handlers/text_handler.rb,
lib/postsvg/translation/handlers/group_handler.rb,
lib/postsvg/translation/handlers/image_handler.rb,
lib/postsvg/visitors/ps_visitor/graphics_state.rb,
lib/postsvg/translation/handlers/circle_handler.rb,
lib/postsvg/visitors/ps_visitor/transformations.rb,
lib/postsvg/translation/handlers/ellipse_handler.rb,
lib/postsvg/translation/handlers/polygon_handler.rb,
lib/postsvg/translation/handlers/polyline_handler.rb,
lib/postsvg/translation/handlers/clip_path_handler.rb

Defined Under Namespace

Modules: Colors, FormatNumber, Model, Source, Svg, Translation, Visitors Classes: CLI, Color, Converter, Error, ExitSignal, GraphicsContext, GraphicsStack, GraphicsState, Interpreter, LexError, Matrix, Options, ParseError, Parser, PathBuilder, QuitSignal, RecursionLimitError, RenderError, Renderer, SerializeError, Serializer, SizeLimitError, StackUnderflowError, SvgBuilder, SvgGenerator, SyntaxError, Token, Tokenizer, TranslationError, UndefinedOperatorError, UnresolvedReferenceError, UnsupportedElementError

Constant Summary collapse

ConversionError =

Legacy aliases kept so older rescue clauses still match.

RenderError
UnsupportedOperatorError =
UndefinedOperatorError
VERSION =
"0.3.0"

Class Method Summary collapse

Class Method Details

.to_eps(svg_string, **options) ⇒ Object

SVG string -> EPS source.



96
97
98
# File 'lib/postsvg.rb', line 96

def to_eps(svg_string, **options)
  to_ps(svg_string, eps: true, **options)
end

.to_ps(svg_string, eps: false, **options) ⇒ Object

SVG string -> PS source. Pass eps: true for EPS output.



89
90
91
92
93
# File 'lib/postsvg.rb', line 89

def to_ps(svg_string, eps: false, **options)
  document = Svg::Parser.call(svg_string)
  program = Translation::PsRenderer.call(document, eps: eps)
  Serializer.call(program, eps: eps, **options)
end

.to_ps_file(input_path, output_path = nil, eps: false, **options) ⇒ Object

SVG file -> PS source. Writes to output_path if given.



101
102
103
104
105
# File 'lib/postsvg.rb', line 101

def to_ps_file(input_path, output_path = nil, eps: false, **options)
  ps = to_ps(File.read(input_path), eps: eps, **options)
  File.write(output_path, ps) if output_path
  ps
end

.to_svg(source, **options) ⇒ Object Also known as: convert

PS/EPS source -> SVG string.



75
76
77
78
# File 'lib/postsvg.rb', line 75

def to_svg(source, **options)
  program = Source.parse(source)
  Renderer.call(program, Options.new(**options))
end

.to_svg_file(input_path, output_path = nil, **options) ⇒ Object Also known as: convert_file

PS/EPS file -> SVG string. Writes to output_path if given; returns the SVG string either way.



82
83
84
85
86
# File 'lib/postsvg.rb', line 82

def to_svg_file(input_path, output_path = nil, **options)
  svg = to_svg(File.read(input_path), **options)
  File.write(output_path, svg) if output_path
  svg
end