Adding PDF support #130

This commit is contained in:
Joel Pearson 2023-02-17 15:01:47 +11:00 committed by PlantUML
parent 8cb5ca0daf
commit 4a5e204e16
5 changed files with 67 additions and 0 deletions

View File

@ -164,6 +164,15 @@
<version>${jetty-server.version}</version>
<scope>test</scope>
</dependency>
<!-- PDF Dependencies -->
<dependency>
<!-- fop generally tends to provide duplicate resources on the classpath -->
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>fop</artifactId>
<version>2.7</version>
<type>pom</type>
</dependency>
</dependencies>
<build>

View File

@ -0,0 +1,46 @@
/* ========================================================================
* PlantUML : a free UML diagram generator
* ========================================================================
*
* Project Info: https://plantuml.com
*
* This file is part of PlantUML.
*
* PlantUML is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* PlantUML distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
* License for more details.
*
* You should have received a copy of the GNU General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* USA.
*/
package net.sourceforge.plantuml.servlet;
import net.sourceforge.plantuml.FileFormat;
/**
* PDF servlet of the webapp.
* This servlet produces the UML diagram in PDF format.
*/
@SuppressWarnings("SERIAL")
public class PdfServlet extends UmlDiagramService {
/**
* Gives the wished output format of the diagram.
* This value is used by the DiagramResponse class.
*
* @return the format for pdf responses
*/
@Override
public FileFormat getOutputFormat() {
return FileFormat.PDF;
}
}

View File

@ -262,6 +262,7 @@ public class PlantUmlServlet extends HttpServlet {
request.setAttribute("hasImg", hasImg);
request.setAttribute("imgurl", hostpath + "/png/" + index + encoded);
request.setAttribute("svgurl", hostpath + "/svg/" + index + encoded);
request.setAttribute("pdfurl", hostpath + "/pdf/" + index + encoded);
request.setAttribute("txturl", hostpath + "/txt/" + index + encoded);
request.setAttribute("mapurl", hostpath + "/map/" + index + encoded);
// map for diagram source if necessary

View File

@ -111,6 +111,15 @@
<url-pattern>/svg/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>pdfservlet</servlet-name>
<servlet-class>net.sourceforge.plantuml.servlet.PdfServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>pdfservlet</servlet-name>
<url-pattern>/pdf/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>epsservlet</servlet-name>
<servlet-class>net.sourceforge.plantuml.servlet.EpsServlet</servlet-class>

View File

@ -13,6 +13,7 @@
String imgurl = request.getAttribute("imgurl").toString();
String svgurl = request.getAttribute("svgurl").toString();
String txturl = request.getAttribute("txturl").toString();
String pdfurl = request.getAttribute("pdfurl").toString();
String mapurl = request.getAttribute("mapurl").toString();
// map for diagram source if necessary
boolean hasMap = (boolean)request.getAttribute("hasMap");
@ -79,6 +80,7 @@
<a href="<%= imgurl %>" title="View diagram as PNG">View as PNG</a>&nbsp;
<a href="<%= svgurl %>" title="View diagram as SVG">View as SVG</a>&nbsp;
<a href="<%= txturl %>" title="View diagram as ASCII Art">View as ASCII Art</a>&nbsp;
<a href="<%= pdfurl %>" title="View diagram as PDF">View as PDF</a>&nbsp;
<% if (hasMap) { %>
<a href="<%= mapurl %>">View Map Data</a>
<% } %>