summaryrefslogtreecommitdiff
path: root/Build/source/texk/dvisvgm/dvisvgm-src/src/PdfSpecialHandler.hpp
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-01-17 22:50:15 +0000
committerKarl Berry <karl@freefriends.org>2018-01-17 22:50:15 +0000
commite7dfe5ab98e759081fc73990ed6c1ac6910a105d (patch)
tree1635f79c86856a6aa57a45b8b952b651ef9fcba9 /Build/source/texk/dvisvgm/dvisvgm-src/src/PdfSpecialHandler.hpp
parentae542350b1e3add10d4ee3d7b68f610132f31a50 (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.hpp27
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
};