可访问的html页面生成PDF文件并可以下载功能,别提itext想过了不行html页面生成PDF

解决方案 »

  1.   

    什么叫itext不行?是你没弄会吧?
    看看这个http://blog.lichengwu.cn/java/2010/10/27/using-flying-saucer-and-itext-convert-html-to-pdf/
      

  2.   

    http://download.csdn.net/detail/jimmy609/6407691http://blog.csdn.net/jimmy609/article/details/12748053
    flying saucer或者itext
      

  3.   

    ERROR:  '在 publicId 和 systemId 之间需要有空格。'
    org.xhtmlrenderer.util.XRRuntimeException: Can't load the XML resource (using TRaX transformer). org.xml.sax.SAXParseException; lineNumber: 4; columnNumber: 63; 在 publicId 和 systemId 之间需要有空格。
    at org.xhtmlrenderer.resource.XMLResource$XMLResourceBuilder.createXMLResource(XMLResource.java:191)
    at org.xhtmlrenderer.resource.XMLResource.load(XMLResource.java:71)
    at org.xhtmlrenderer.swing.NaiveUserAgent.getXMLResource(NaiveUserAgent.java:211)
    at org.xhtmlrenderer.pdf.ITextRenderer.loadDocument(ITextRenderer.java:134)
    at org.xhtmlrenderer.pdf.ITextRenderer.setDocument(ITextRenderer.java:138)
    at com.cist.certificates.controller.StoneCodeServlet.print(StoneCodeServlet.java:129)
    at com.cist.certificates.controller.StoneCodeServlet.service(StoneCodeServlet.java:61)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1805)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
    Caused by: javax.xml.transform.TransformerException: org.xml.sax.SAXParseException; lineNumber: 4; columnNumber: 63; 在 publicId 和 systemId 之间需要有空格。
    at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
    at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
    at org.xhtmlrenderer.resource.XMLResource$XMLResourceBuilder.createXMLResource(XMLResource.java:189)
    ... 27 more
    Caused by: org.xml.sax.SAXParseException; lineNumber: 4; columnNumber: 63; 在 publicId 和 systemId 之间需要有空格。
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
    at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(Unknown Source)
    ... 30 more
      

  4.   

    ITextRenderer怎么设置横向打印,页面布局没问题,打印出来后的布局就变了
      

  5.   

    我试过了,页面布局和打印后的布局都不一样。想设置成横向也没找到,请教下据我的了解,itext好像对于html转PDF如果样式复杂好像效果不好,你用下  flying saucer这个试试....
      

  6.   

    我试过了,页面布局和打印后的布局都不一样。想设置成横向也没找到,请教下据我的了解,itext好像对于html转PDF如果样式复杂好像效果不好,你用下  flying saucer这个试试....
    我用的就是这个flyingsaucer-R8    
     ITextRenderer render = new ITextRenderer();
            render.setDocument(url);
            ITextFontResolver fontResolver = render.getFontResolver();
    //         fontResolver.addFont("C:/Windows/Fonts/Aria.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
            render.getSharedContext().setBaseURL(request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort());
            render.layout();
            render.createPDF(os);
            os.flush();
            os.close();
      

  7.   

    java iText 确实很强大,建议楼主还是从iText方向找解决方案,毕竟是成熟的框架。