预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

flyingsauser在这种情况下,我几乎已经燃起了自己编写一个支持CSS解析的HTMLParser的想法。幸好,在一个非常偶然的情况下,我在google中搜到了这样一个开源项目,它能够满足我的一切需求。这就是flyingsauser,项目主页是:HYPERLINK"https://xhtmlrenderer.dev.java.net/"\t"_blank"https://xhtmlrenderer.dev.java.net/项目的首页非常吸引人:AnXML/XHTML/CSS2.1Renderer。这不正是我要的东西么?仔细再看里面的文档: 引用 FlyingSaucerisanXML/CSSrenderer,whichmeansittakesXMLfilesasinput,appliesformattingandstylingusingCSS,andgeneratesarenderedrepresentationofthatXMLasoutput.Theoutputmaygotothescreen(inaGUI),toanimage,ortoaPDFfile.Becausewebelievemostpeoplewillbeinterestedinre-usingtheirknowledgeofweblayout,ourmaintargetforcontentisXHTML1.0(strict),anXMLdocumentformatthatstandardizesHTML. 完美了。这东西能解析HTML和CSS,而且能输出成image,PDF等格式。哇!我们来看看sample代码(代码丑陋,不过已经能说明问题了): Java代码HYPERLINK"javascript:void()"\o"收藏这段代码" /* *ITextRendererTest.java* *Copyright2009ShanghaiTuDou. *Allrightsreserved. */ packageitext; importjava.io.File; importjava.io.FileOutputStream; importjava.io.OutputStream; importorg.xhtmlrenderer.pdf.ITextFontResolver; importorg.xhtmlrenderer.pdf.ITextRenderer; importcom.lowagie.text.pdf.BaseFont; /** *TODOclassdescription* * *@authorpcwang * *@version1.0,上午11:03:26create$Id$ */ publicclassITextRendererTest{ publicstaticvoidmain(String[]args)throwsException{ StringinputFile="conf/template/test.html"; Stringurl=newFile(inputFile).toURI().toURL().toString(); StringoutputFile="firstdoc.pdf"; OutputStreamos=newFileOutputStream(outputFile); ITextRendererrenderer=newITextRenderer(); renderer.setDocument(url); //解决中文支持问题 ITextFontResolverfontResolver=renderer.getFontResolver(); fontResolver.addFont("C:/Windows/Fonts/arialuni.ttf",BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED); //解决图片的相对路径问题 renderer.getSharedContext().setBaseURL("file:/D:/Work/Demo2do/Yoda/branch/Yoda%20-%20All/conf/template/"); renderer.layout(); renderer.createPDF(os); os.close(); } } /* *ITextRendererTest.java* *Copyright2009ShanghaiTuDou. *Allrightsreserved. */ packageitext; importjava.io.File; importjava.io.FileOutputStream; importjava