source: wkhtmltox/trunk/fuentes/src/lib/tocstylesheet.cc @ 51

Last change on this file since 51 was 51, checked in by mabarracus, 4 years ago

wip

File size: 4.3 KB
Line 
1// -*- mode: c++; tab-width: 4; indent-tabs-mode: t; eval: (progn (c-set-style "stroustrup") (c-set-offset 'innamespace 0)); -*-
2// vi:set ts=4 sts=4 sw=4 noet :
3//
4// Copyright 2010 wkhtmltopdf authors
5//
6// This file is part of wkhtmltopdf.
7//
8// wkhtmltopdf is free software: you can redistribute it and/or modify
9// it under the terms of the GNU Lesser General Public License as published by
10// the Free Software Foundation, either version 3 of the License, or
11// (at your option) any later version.
12//
13// wkhtmltopdf is distributed in the hope that it will be useful,
14// but WITHOUT ANY WARRANTY; without even the implied warranty of
15// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16// GNU General Public License for more details.
17//
18// You should have received a copy of the GNU Lesser General Public License
19// along with wkhtmltopdf.  If not, see <http://www.gnu.org/licenses/>.
20
21
22#include "outline_p.hh"
23#include "pdfsettings.hh"
24#include <QTextStream>
25
26namespace wkhtmltopdf {
27
28void dumpDefaultTOCStyleSheet(QTextStream & stream, settings::TableOfContent & s) {
29    stream << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" << endl
30                   << "<xsl:stylesheet version=\"2.0\"" << endl
31                   << "                xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\"" << endl
32                   << "                xmlns:outline=\"http://wkhtmltopdf.org/outline\"" << endl
33                   << "                xmlns=\"http://www.w3.org/1999/xhtml\">" << endl
34                   << "  <xsl:output doctype-public=\"-//W3C//DTD XHTML 1.0 Strict//EN\"" << endl
35               << "              doctype-system=\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"" << endl
36                   << "              indent=\"yes\" />" << endl
37                   << "  <xsl:template match=\"outline:outline\">" << endl
38                   << "    <html>" << endl
39                   << "      <head>" << endl
40                   << "        <title>" << s.captionText << "</title>" << endl
41                   << "        <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />" << endl
42                   << "        <style>" << endl
43                   << "          h1 {" << endl
44                   << "            text-align: center;" << endl
45                   << "            font-size: 20px;" << endl
46                   << "            font-family: arial;" << endl
47                   << "          }" << endl;
48        if (s.useDottedLines)
49                stream << "          div {border-bottom: 1px dashed rgb(200,200,200);}" << endl;
50        stream << "          span {float: right;}" << endl
51                   << "          li {list-style: none;}" << endl
52                   << "          ul {" << endl
53                   << "            font-size: 20px;" << endl
54                   << "            font-family: arial;" << endl
55                   << "          }" << endl
56                   << "          ul ul {font-size: " << (s.fontScale*100.0) << "%; }" << endl
57                   << "          ul {padding-left: 0em;}" << endl
58                   << "          ul ul {padding-left: " << s.indentation << ";}" << endl
59                   << "          a {text-decoration:none; color: black;}" << endl
60                   << "        </style>" << endl
61                   << "      </head>" << endl
62                   << "      <body>" << endl
63                   << "        <h1>" << s.captionText << "</h1>" << endl
64                   << "        <ul><xsl:apply-templates select=\"outline:item/outline:item\"/></ul>" << endl
65                   << "      </body>" << endl
66                   << "    </html>" << endl
67                   << "  </xsl:template>" << endl
68                   << "  <xsl:template match=\"outline:item\">" << endl
69                   << "    <li>" << endl
70                   << "      <xsl:if test=\"@title!=''\">" << endl
71                   << "        <div>" << endl
72                   << "          <a>" << endl;
73        if (s.forwardLinks)
74                stream << "            <xsl:if test=\"@link\">" << endl
75                           << "              <xsl:attribute name=\"href\"><xsl:value-of select=\"@link\"/></xsl:attribute>" << endl
76                           << "            </xsl:if>" << endl;
77        stream << "            <xsl:if test=\"@backLink\">" << endl
78                   << "              <xsl:attribute name=\"name\"><xsl:value-of select=\"@backLink\"/></xsl:attribute>" << endl
79                   << "            </xsl:if>" << endl
80                   << "            <xsl:value-of select=\"@title\" /> " << endl
81                   << "          </a>" << endl
82                   << "          <span> <xsl:value-of select=\"@page\" /> </span>" << endl
83                   << "        </div>" << endl
84                   << "      </xsl:if>" << endl
85                   << "      <ul>" << endl
86                   << "        <xsl:comment>added to prevent self-closing tags in QtXmlPatterns</xsl:comment>" << endl
87                   << "        <xsl:apply-templates select=\"outline:item\"/>" << endl
88                   << "      </ul>" << endl
89                   << "    </li>" << endl
90                   << "  </xsl:template>" << endl
91                   << "</xsl:stylesheet>" << endl;
92}
93
94}
Note: See TracBrowser for help on using the repository browser.