2 * @brief Extract text from an SVG file.
4 /* Copyright (C) 2010-2022 Olly Betts
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
23 #include "svgparser.h"
24 #include "stringutils.h"
29 SvgParser::process_content(const string
& content
)
31 string
* target
= NULL
;
40 // Prefer <title> to <dc:title>.
41 if (!title
.empty()) return;
49 case METADATA
: case OTHER
:
50 // Ignore context in other places.
59 SvgParser::opening_tag(const string
& tag
)
63 if (tag
== "text" || tag
== "svg:text")
65 else if (tag
== "metadata" || tag
== "svg:metadata")
67 else if (tag
== "title")
71 // Ignore nested "dc:" tags - for example dc:title is also used to
72 // specify the creator's name inside dc:creator.
73 if (dc_tag
.empty() && startswith(tag
, "dc:")) {
75 if (tag
== "dc:title")
77 else if (tag
== "dc:subject")
79 else if (tag
== "dc:creator")
83 case DC_TITLE
: case KEYWORDS
: case TEXT
: case TITLE
: case AUTHOR
:
84 // Avoid compiler warnings.
91 SvgParser::closing_tag(const string
& tag
)
93 if (tag
== "text" || tag
== "svg:text" ||
95 tag
== "metadata" || tag
== "svg:metadata") {
97 } else if (tag
== dc_tag
) {