diff options
author | Karl Berry <karl@freefriends.org> | 2018-01-17 22:50:15 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-01-17 22:50:15 +0000 |
commit | e7dfe5ab98e759081fc73990ed6c1ac6910a105d (patch) | |
tree | 1635f79c86856a6aa57a45b8b952b651ef9fcba9 /Build/source/texk/dvisvgm/dvisvgm-src/src/PdfSpecialHandler.hpp | |
parent | ae542350b1e3add10d4ee3d7b68f610132f31a50 (diff) |
dvisvgm 2.3.1 (patched)
git-svn-id: svn://tug.org/texlive/trunk@46352 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/dvisvgm/dvisvgm-src/src/PdfSpecialHandler.hpp')
-rw-r--r-- | Build/source/texk/dvisvgm/dvisvgm-src/src/PdfSpecialHandler.hpp | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/PdfSpecialHandler.hpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/PdfSpecialHandler.hpp index cca0d07fc83..f2d145c1328 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/PdfSpecialHandler.hpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/PdfSpecialHandler.hpp @@ -2,7 +2,7 @@ ** PdfSpecialHandler.hpp ** ** ** ** This file is part of dvisvgm -- a fast DVI to SVG converter ** -** Copyright (C) 2005-2017 Martin Gieseking <martin.gieseking@uos.de> ** +** Copyright (C) 2005-2018 Martin Gieseking <martin.gieseking@uos.de> ** ** ** ** This program is free software; you can redistribute it and/or ** ** modify it under the terms of the GNU General Public License as ** @@ -23,16 +23,33 @@ #include "SpecialHandler.hpp" -class PdfSpecialHandler : public SpecialHandler -{ +class StreamInputReader; + +class PdfSpecialHandler : public SpecialHandler, public DVIPositionListener, public DVIEndPageListener { public: PdfSpecialHandler (); - const char* info () const override {return "pdfTeX font map specials";} + const char* info () const override {return "PDF hyperlink, font map, and pagesize specials";} const char* name () const override {return "pdf";} - const char** prefixes () const override; + const std::vector<const char*> prefixes () const override; + void preprocess (const char *prefix, std::istream &is, SpecialActions &actions) override; bool process (const char *prefix, std::istream &is, SpecialActions &actions) override; + protected: + // handlers for corresponding PDF specials + void preprocessBeginAnn (StreamInputReader &ir, SpecialActions &actions); + void preprocessDest (StreamInputReader &ir, SpecialActions &actions); + void preprocessPagesize (StreamInputReader &ir, SpecialActions &actions); + void processBeginAnn (StreamInputReader &ir, SpecialActions &actions); + void processEndAnn (StreamInputReader &ir, SpecialActions &actions); + void processDest (StreamInputReader &ir, SpecialActions &actions); + void processMapfile (StreamInputReader &ir, SpecialActions &actions); + void processMapline (StreamInputReader &ir, SpecialActions &actions); + + void dviMovedTo (double x, double y, SpecialActions &actions) override; + void dviEndPage (unsigned pageno, SpecialActions &actions) override; + private: + bool _active; bool _maplineProcessed; ///< true if a mapline or mapfile special has already been processed }; |