当前位置: 首页 > 知识库问答 >
问题:

使用飞碟将jsp转换为PDF

裘臻
2023-03-14

我有一个jsp文件,我喜欢使用飞碟将其转换为PDF。以下是jsp文件:

<%@page contentType="text/html" pageEncoding="UTF-8" isELIgnored="false"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="display" uri="http://displaytag.sf.net/el" %>
<!DOCTYPE html>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP Page</title>
</head>
<body>
    <form name="testDBForm" action="<%=basePath%>/TestDatabase" method="post" onsubmit="return true">
        <input type="submit" id="btnInsert" value="btnInsert" name="btnInsert" text="INSERT"/>
        <input type="submit" id="btnSelect" value="btnSelect" name="btnSelect" text="SELECT"/>
        <input type="submit" id="btnDelete" value="btnDelete" name="btnDelete" text="DELETE"/>
        <input type="submit" id="btnUpdate" value="btnUpdate" name="btnUpdate" text="UPDATE"/>
  </form>
  <c:if test="${not empty message}">
      <h1>${message}</h1>
  </c:if>
  <c:if test="${not empty insert}">
      <h1>Insert: ${message}</h1>
  </c:if>
  <c:if test="${not empty select}">
      <h1>Select: ${message}</h1>
  </c:if>
  <c:if test="${not empty update}">
      <h1>Update: ${message}</h1>
  </c:if>
  <c:if test="${not empty delete}">
      <h1>Delete: ${message}</h1>
  </c:if>

</body>
  </html>

以下是我用于将html解析为pdf的servlet代码:

protected void processRequest(HttpServletRequest request, HttpServletResponse response) {
    response.setContentType("application/pdf");
    String inputFile = "D:\\03072014\\src\\main\\webapp\\includes\\testDatabase.jsp";
    String url="";
    try {
        url = new File(inputFile).toURI().toURL().toString();
    } catch (MalformedURLException ex) {
        Logger.getLogger(HtmlToPdfTaxCardConvertor.class.getName()).log(Level.SEVERE, null, ex);
    }
    OutputStream os=null;
    try {
        os = response.getOutputStream();
    } catch (IOException ex) {
        Logger.getLogger(HtmlToPdfTaxCardConvertor.class.getName()).log(Level.SEVERE, null, ex);
    }

    ITextRenderer renderer = new ITextRenderer();
    renderer.setDocument(url);
    renderer.layout();
    try {
        renderer.createPDF(os);
        os.close();
    } catch (DocumentException ex) {
        Logger.getLogger(HtmlToPdfTaxCardConvertor.class.getName()).log(Level.SEVERE, null, ex);
    }
     catch (IOException  ex) {
        Logger.getLogger(HtmlToPdfTaxCardConvertor.class.getName()).log(Level.SEVERE, null, ex);
    }     

} }

我有个例外

javax.xml.transform.TransformerException: org.xml.sax.SAXParseException: The markup in    the document preceding the root element must be well-formed.

有人能帮我吗?有没有可能从这种html页面创建pdf

共有1个答案

晏沈义
2023-03-14

FS采用XHTML,这意味着它对HTML文件的输入非常挑剔。

有两件事需要尝试:

  1. 把你的

如果这失败了,这是我用于FS jsp页面的标准模板,doc类型声明是可选的,您可以使用标准

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE doctypeName [
   <!ENTITY nbsp "&#160;">
   <!ENTITY amp "&#38;">
]> 
<%-- other jsp stuff here --%>
<%@include file="/WEB-INF/jsp/taglib.inc"%>
<html>
....
</html>

 类似资料:
  • 我使用飞碟和itext将html转换为pdf,为了以垂直方向编写文本,我尝试了简单的css: 浏览器的变换旋转: 但没有成功...:( 同一个知道如何旋转html文本,飞碟和itext? 感谢提前:)

  • 我需要将所有html报告转换为PDF。 这是一个nodejs应用程序,所以我找不到任何将html转换为pdf的核心模块。 所以我使用JAVA飞碟罐将html转换为PDF。除了html中嵌入的svg之外,其他一切都可以完美地工作。我在谷歌上搜索到了这个教程和Stackoverflow链接。我是一名nodejs开发人员,对java有基本的了解。我不知道如何将此代码与飞碟集成。 请指导我做什么 . 下面

  • 我使用的罐子来自maven repo 我正在测试的代码来自以前的堆栈解决方案 我担心它可能过时了,因为图书馆被贬值了。测试以下代码时: 这一行我有以下错误:

  • 问题内容: 我正在使用飞碟将XHTML转换为PDF文档。我已经获得了仅可用于基本HTML和嵌入式CSS的代码,但是,现在,我试图将图像添加为PDF的标题。我想知道的是,是否有任何办法通过将图像文件读取为Java Image对象来添加图像,然后以某种方式将其添加到PDF(或XHTML中,就像它获得了虚拟的“ URL”一样)表示可用于呈现PDF的Image对象。有没有人做过这样的事情? 预先感谢您提供

  • 我正在使用飞碟将XHTML转换为PDF文档。我已经让代码只使用基本的HTML和内嵌CSS,然而,现在我正试图将一个图像作为某种头添加到PDF中。我想知道的是,是否有任何方法可以添加图像,通过读取图像文件作为Java图像对象,然后以某种方式将其添加到PDF(或XHTML——就像它得到一个虚拟的“url”,表示可以用于呈现PDF的图像对象)。有人做过这样的事吗? 提前感谢您提供的任何帮助!

  • 我正在使用飞碟从XHTML创建PNG图像文件。然后,我使用另一个工具将这些与一堆其他文本n图像一起收集到PDF中。 虽然我可以将PDF导出处理转换为iText,但这将是一项相当大的任务。。。。 我的问题是,当导出到PNG图像文件时,一些XHTML内容需要分页。我只需要在图像文件之间进行一个简单的“剪辑样式”分割就可以了。 下面是我用来将整个内容呈现到单个文件中的内容,效果很好。 然而,我的一些内容