flying saucer在java web 中运行到ITextRenderer renderer = new ITextRenderer();时卡死在这一步

java web 专栏收录该内容
0 篇文章 0 订阅


flying saucer在java web 中运行到ITextRenderer renderer = new ITextRenderer();时卡死在这一步,不知道为什么,加载的包是core-renderer.jar,iText-2.0.8.jar,xml-apis-xerces-2.9.1.jar


但是就Y的跑不了,跪求大神们帮忙看看是什么原因造成的,感激不尽!!!!急急急急急急急急急!!!







servlet代码如下:


package test;


import java.io.IOException;
import java.io.OutputStream;


import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


import org.xhtmlrenderer.pdf.ITextRenderer;




public class Html2PdfServlet extends HttpServlet {




    /**
* @Fields serialVersionUID : TODO(用一句话描述这个变量表示什么)
*/ 
private static final long serialVersionUID = 1L;


public void doPost(HttpServletRequest request, HttpServletResponse response)  
        throws ServletException, IOException {  
        //pageContext.getServletContext().getRealPath("/")  
        ServletContext sc = request.getSession().getServletContext();  
        String path = sc.getRealPath(""); //值为D:\apache-tomcat-6.0.26\webapps\createpdf  
        System.out.println("原path: " + path);  
        //把路径中的反斜杠转成正斜杠  
        path = path.replaceAll("\\\\", "/"); //值为D:/apache-tomcat-6.0.26/webapps/createpdf  
        System.out.println(path);  
          
        String path2 = sc.getRealPath("/");  
        System.out.println("path2: " + path2);  
          
        System.out.println(Thread.currentThread().getContextClassLoader().getResource(""));  
          
        System.out.println("request.getRequestURI: " + request.getRequestURI());  
        //获取使用的端口号  
        System.out.println(request.getLocalPort());  
          
        String path3 = request.getContextPath();  
        String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path3+"/";  
          
        System.out.println("basepath: " + basePath);  
          
          
        response.setContentType("application/pdf");  
        //response.setHeader("Content-Disposition", "attachment; filename=WebReport.pdf");  
        response.setHeader("Content-Disposition", "inline; filename=WebReport.pdf");  
          
        StringBuffer html = new StringBuffer();  
        //组装成符合W3C标准的html文件,否则不能正确解析  
        html.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");  
        html.append("<html xmlns=\"http://www.w3.org/1999/xhtml\">")  
        .append("<head>")  
        .append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />")  
        .append("<style type=\"text/css\" mce_bogus=\"1\">body {font-family: SimSun;}</style>")  
        .append("<style type=\"text/css\">img {width: 700px;}</style>")  
        .append("</head>")  
        .append("<body>");  
          
        html.append("<center><h1>统计报表</h1></center>");  
        html.append("<center>aaaaaaaaaaaaaaaaaa");  
        //html.append("<img src=\"images/chart.jpg\"/>");  
        html.append("</center>");  
          
        html.append("</body></html>");  
          
        // parse our markup into an xml Document  
        try {  
            ITextRenderer renderer = new ITextRenderer();  
            /** 
             * 引入了新的jar包,不用再导入字体了 
            ITextFontResolver fontResolver = renderer.getFontResolver(); 
            fontResolver.addFont("C:/Windows/fonts/simsun.ttc", 
                    BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); 
            */  
            renderer.setDocumentFromString(html.toString());  
            // 解决图片的相对路径问题  
            //renderer.getSharedContext().setBaseURL("file:/C:/Documents and Settings/dashan.yin/workspace/createpdf/WebRoot/images");  
            //renderer.getSharedContext().setBaseURL("file:/D:/apache-tomcat-6.0.26/webapps/createpdf/images");  
            //renderer.getSharedContext().setBaseURL("file:/" + path + "/images");  
            renderer.layout();  
            OutputStream os = response.getOutputStream();  
            renderer.createPDF(os);  
            os.close();  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
  
    }  
  
    public void doGet(HttpServletRequest request, HttpServletResponse response)  
            throws ServletException, IOException {  
        doPost(request, response);  
    }
}


jsp代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>

<a href="/test3/servlet/html2PdfServlet.do">do</a>

</body>
</html>



web.xml配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">


<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>html2PdfServlet</servlet-name>
<servlet-class>test.Html2PdfServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>html2PdfServlet</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
</web-app>

  • 1
    点赞
  • 3
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

评论 3 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

robent

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值