summaryrefslogtreecommitdiff
path: root/dviware/dvisvgm/src/CommandLine.hpp
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /dviware/dvisvgm/src/CommandLine.hpp
Initial commit
Diffstat (limited to 'dviware/dvisvgm/src/CommandLine.hpp')
-rw-r--r--dviware/dvisvgm/src/CommandLine.hpp154
1 files changed, 154 insertions, 0 deletions
diff --git a/dviware/dvisvgm/src/CommandLine.hpp b/dviware/dvisvgm/src/CommandLine.hpp
new file mode 100644
index 0000000000..b1f2636040
--- /dev/null
+++ b/dviware/dvisvgm/src/CommandLine.hpp
@@ -0,0 +1,154 @@
+// This file was automatically generated by opt2cpp.
+// It is part of the dvisvgm package and published under the terms
+// of the GNU General Public License version 3, or (at your option) any later version.
+// See file COPYING for further details.
+// Copyright (C) 2016-2019 Martin Gieseking <martin.gieseking@uos.de>
+
+#ifndef COMMANDLINE_HPP
+#define COMMANDLINE_HPP
+
+#include <config.h>
+#include <array>
+#include <vector>
+#include "CLCommandLine.hpp"
+
+using CL::Option;
+using CL::TypedOption;
+
+class CommandLine : public CL::CommandLine {
+ public:
+ CommandLine () : CL::CommandLine(
+ "This program converts DVI files, as created by TeX/LaTeX, as well as\nEPS and PDF files to the XML-based scalable vector graphics format SVG.",
+ "[options] dvifile\n--eps [options] epsfile\n--pdf [options] pdffile",
+ "Copyright (C) 2005-2019 Martin Gieseking <martin.gieseking@uos.de>"
+ ) {}
+
+ CommandLine (int argc, char **argv) : CommandLine() {
+ parse(argc, argv);
+ }
+
+ // option variables
+ TypedOption<std::string, Option::ArgMode::REQUIRED> bboxOpt {"bbox", 'b', "size", "min", "set size of bounding box"};
+ TypedOption<std::string, Option::ArgMode::OPTIONAL> cacheOpt {"cache", 'C', "dir", "set/print path of cache directory"};
+ Option clipjoinOpt {"clipjoin", 'j', "compute intersection of clipping paths"};
+ Option colorOpt {"color", '\0', "colorize messages"};
+ Option colornamesOpt {"colornames", '\0', "prefer color names to RGB values if possible"};
+ Option commentsOpt {"comments", '\0', "add comments with additional information"};
+ Option epsOpt {"eps", 'E', "convert EPS file to SVG"};
+ Option exactBboxOpt {"exact-bbox", 'e', "compute exact glyph bounding boxes"};
+ TypedOption<std::string, Option::ArgMode::REQUIRED> fontFormatOpt {"font-format", 'f', "format", "svg", "select file format of embedded fonts"};
+ TypedOption<std::string, Option::ArgMode::REQUIRED> fontmapOpt {"fontmap", 'm', "filenames", "evaluate (additional) font map files"};
+ Option gradOverlapOpt {"grad-overlap", '\0', "create overlapping color gradient segments"};
+ TypedOption<int, Option::ArgMode::REQUIRED> gradSegmentsOpt {"grad-segments", '\0', "number", 20, "number of color gradient segments per row"};
+ TypedOption<double, Option::ArgMode::REQUIRED> gradSimplifyOpt {"grad-simplify", '\0', "delta", 0.05, "reduce level of detail for small segments"};
+ TypedOption<int, Option::ArgMode::OPTIONAL> helpOpt {"help", 'h', "mode", 0, "print this summary of options and exit"};
+ Option keepOpt {"keep", '\0', "keep temporary files"};
+ TypedOption<std::string, Option::ArgMode::REQUIRED> libgsOpt {"libgs", '\0', "filename", "set name of Ghostscript shared library"};
+ TypedOption<std::string, Option::ArgMode::REQUIRED> linkmarkOpt {"linkmark", 'L', "style", "box", "select how to mark hyperlinked areas"};
+ Option listSpecialsOpt {"list-specials", 'l', "print supported special sets and exit"};
+ TypedOption<double, Option::ArgMode::REQUIRED> magOpt {"mag", 'M', "factor", 4, "magnification of Metafont output"};
+ TypedOption<int, Option::ArgMode::OPTIONAL> noFontsOpt {"no-fonts", 'n', "variant", 0, "draw glyphs by using path elements"};
+ Option noMergeOpt {"no-merge", '\0', "don't merge adjacent text elements"};
+ Option noMktexmfOpt {"no-mktexmf", '\0', "don't try to create missing fonts"};
+ TypedOption<std::string, Option::ArgMode::OPTIONAL> noSpecialsOpt {"no-specials", 'S', "prefixes", "don't process [selected] specials"};
+ Option noStylesOpt {"no-styles", '\0', "don't use CSS styles to reference fonts"};
+ TypedOption<std::string, Option::ArgMode::OPTIONAL> optimizeOpt {"optimize", 'O', "modules", "all", "perform several SVG optimizations"};
+ TypedOption<std::string, Option::ArgMode::REQUIRED> outputOpt {"output", 'o', "pattern", "set name pattern of output files"};
+ TypedOption<std::string, Option::ArgMode::REQUIRED> pageOpt {"page", 'p', "ranges", "1", "choose page(s) to convert"};
+ TypedOption<std::string, Option::ArgMode::OPTIONAL> pageHashesOpt {"page-hashes", 'H', "params", "xxh64", "activate usage of page hashes"};
+ Option pdfOpt {"pdf", 'P', "convert PDF file to SVG"};
+ TypedOption<int, Option::ArgMode::REQUIRED> precisionOpt {"precision", 'd', "number", 0, "set number of decimal points (0-6)"};
+ TypedOption<double, Option::ArgMode::OPTIONAL> progressOpt {"progress", '\0', "delay", 0.5, "enable progress indicator"};
+ Option relativeOpt {"relative", 'R', "create relative path commands"};
+ TypedOption<double, Option::ArgMode::REQUIRED> rotateOpt {"rotate", 'r', "angle", "rotate page content clockwise"};
+ TypedOption<std::string, Option::ArgMode::REQUIRED> scaleOpt {"scale", 'c', "sx[,sy]", "scale page content"};
+ Option stdinOpt {"stdin", '\0', "read input file from stdin"};
+ Option stdoutOpt {"stdout", 's', "write SVG output to stdout"};
+ TypedOption<std::string, Option::ArgMode::OPTIONAL> tmpdirOpt {"tmpdir", '\0', "path", "set/print the directory for temporary files"};
+ TypedOption<bool, Option::ArgMode::OPTIONAL> traceAllOpt {"trace-all", 'a', "retrace", false, "trace all glyphs of bitmap fonts"};
+ TypedOption<std::string, Option::ArgMode::REQUIRED> transformOpt {"transform", 'T', "commands", "transform page content"};
+ TypedOption<std::string, Option::ArgMode::REQUIRED> translateOpt {"translate", 't', "tx[,ty]", "shift page content"};
+ TypedOption<unsigned, Option::ArgMode::REQUIRED> verbosityOpt {"verbosity", 'v', "level", 7, "set verbosity level (0-7)"};
+ TypedOption<bool, Option::ArgMode::OPTIONAL> versionOpt {"version", 'V', "extended", false, "print version and exit"};
+ TypedOption<int, Option::ArgMode::OPTIONAL> zipOpt {"zip", 'z', "level", 9, "create compressed .svgz file"};
+ TypedOption<double, Option::ArgMode::REQUIRED> zoomOpt {"zoom", 'Z', "factor", 1.0, "zoom page content"};
+
+ protected:
+ std::vector<OptSectPair>& options () const override {return _options;}
+ const char* section (size_t n) const override {return n < _sections.size() ? _sections[n] : nullptr;}
+
+ private:
+ std::array<const char*, 5> _sections {{
+ "Input options",
+ "SVG output options",
+ "SVG transformations",
+ "Processing options",
+ "Message options",
+ }};
+
+ mutable std::vector<OptSectPair> _options = {
+ {&pageOpt, 0},
+ {&fontmapOpt, 0},
+#if !defined(DISABLE_GS)
+ {&epsOpt, 0},
+#endif
+#if !defined(DISABLE_GS)
+ {&pdfOpt, 0},
+#endif
+ {&stdinOpt, 0},
+ {&bboxOpt, 1},
+#if !defined(DISABLE_GS)
+ {&clipjoinOpt, 1},
+#endif
+ {&colornamesOpt, 1},
+ {&commentsOpt, 1},
+#if !defined(DISABLE_WOFF)
+ {&fontFormatOpt, 1},
+#endif
+#if !defined(DISABLE_GS)
+ {&gradOverlapOpt, 1},
+#endif
+#if !defined(DISABLE_GS)
+ {&gradSegmentsOpt, 1},
+#endif
+#if !defined(DISABLE_GS)
+ {&gradSimplifyOpt, 1},
+#endif
+ {&linkmarkOpt, 1},
+ {&optimizeOpt, 1},
+ {&outputOpt, 1},
+ {&precisionOpt, 1},
+ {&relativeOpt, 1},
+ {&stdoutOpt, 1},
+ {&tmpdirOpt, 1},
+ {&noFontsOpt, 1},
+ {&noMergeOpt, 1},
+ {&noStylesOpt, 1},
+ {&zipOpt, 1},
+ {&rotateOpt, 2},
+ {&scaleOpt, 2},
+ {&translateOpt, 2},
+ {&transformOpt, 2},
+ {&zoomOpt, 2},
+ {&cacheOpt, 3},
+ {&exactBboxOpt, 3},
+ {&keepOpt, 3},
+#if !defined(HAVE_LIBGS) && !defined(DISABLE_GS)
+ {&libgsOpt, 3},
+#endif
+ {&magOpt, 3},
+ {&noMktexmfOpt, 3},
+ {&noSpecialsOpt, 3},
+ {&pageHashesOpt, 3},
+ {&traceAllOpt, 3},
+ {&colorOpt, 4},
+ {&helpOpt, 4},
+ {&listSpecialsOpt, 4},
+ {&progressOpt, 4},
+ {&verbosityOpt, 4},
+ {&versionOpt, 4},
+ };
+};
+
+#endif
+