1

HTML コンテンツから PDF を作成しようとしています。そのために、itextpdf-5.3.0.jarを使用しています。これは、Java ベース (Struts 2 を使用) の Web プロジェクトです。次のエラーが表示されますが、解決方法がわかりません。私を助けてください。

<%@page import="com.sun.org.apache.bcel.internal.generic.ArrayType"%>
<%@page import="com.sun.xml.internal.ws.api.message.Message"%>
<%@page import="com.sun.xml.internal.fastinfoset.util.StringArray"%>
<%@
page import="javax.servlet.*, 
javax.servlet.http.*,
java.io.*,
java.util.*,
com.itextpdf.awt.*,
com.itextpdf.text.*,com.itextpdf.text.pdf.*,com.itextpdf.text.html.simpleparser.HTMLWorker,
com.itextpdf.tool.xml.XMLWorkerHelper,
com.itextpdf.tool.xml.XMLWorker,
com.itextpdf.tool.xml.XMLWorkerHelper,
com.itextpdf.tool.xml.html.Tags,
com.itextpdf.tool.xml.parser.XMLParser
,com.itextpdf.tool.xml.pipeline.css.CSSResolver
,com.itextpdf.tool.xml.pipeline.css.CssResolverPipeline
,com.itextpdf.tool.xml.pipeline.end.PdfWriterPipeline
,com.itextpdf.tool.xml.pipeline.html.AbstractImageProvider
,com.itextpdf.tool.xml.pipeline.html.HtmlPipeline
,com.itextpdf.tool.xml.pipeline.html.HtmlPipelineContext
,com.itextpdf.tool.xml.pipeline.html.LinkProvider"
%>
<SCRIPT type="text/javascript">
alert("Welcome 2 allTest.jsp");
</script>
<%

response.setContentType("application/pdf");
Document document = new Document(PageSize.A4, 40, 40, 30, 30);
{
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
ByteArrayOutputStream ms=new ByteArrayOutputStream();
PdfWriter pdfWriter = PdfWriter.getInstance(document,response.getOutputStream());

document.open();
HTMLWorker htmlWorker = new HTMLWorker(document);



String pdfCon = request.getParameter("pdfCon");
String [] tokens = pdfCon.split("---");

for(int i=0; i < (tokens.length); i++) {

try{
    htmlWorker.parse(new StringReader(tokens[i]));

    }catch(Exception e)
    {
        System.out.println("Exception: "+e);
    }

    document.newPage();

}
document.close(); 
}
%>

そして、私はこのエラーが発生しています:

ExceptionConverter: java.net.ConnectException: Connection refused: connect
ExceptionConverter: com.itextpdf.text.DocumentException: java.lang.ClassCastException:          com.itextpdf.text.html.simpleparser.TableWrapper cannot 
be cast to com.itextpdf.text.Meta
4

1 に答える 1

2

これを行う正しい方法は、この回答で説明されています。

Stream の結果の型を返す適切な Action にすべてのコードを移動したら、response.getOutputStream(代わりに ByteArrayOutputStream を使用します) を削除します。 .

それでもエラーが発生する場合は、少なくとも (スクリプトレットとは異なり)問題をデバッグするための行番号が表示されるか、ここで対象を絞ったヘルプを求めることができます。

于 2013-11-12T10:04:02.497 に答える