首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用XMLWorker类创建Xpages PDF

使用XMLWorker类创建Xpages PDF
EN

Stack Overflow用户
提问于 2013-05-21 04:17:48
回答 1查看 1.1K关注 0票数 0

使用SSJS,我已经成功地使用iText附带的简单HTML解析器创建了一个PDF,但是这个简单的HTML解析器不支持CSS,并且非常有限。我从iText站点下载了XMLWorker类,并尝试使用它,但我对如何调用iText包的了解太有限了。我能找到的所有示例都使用Java并直接引用类,例如。

Document newPDF = new Document();

但在SSJS中,我们必须使用点符号,例如。

var newPDF:com.itextpdf.text.Document = new com.itextpdf.text.Document();

这--我想--就是我跌倒的地方。我的代码如下所示:

代码语言:javascript
复制
function createLPO2(pReqDoc:NotesDocument) {

importPackage(com.itextpdf);
//importPackage(com.itextpdf.tool.xml.XMLWorkerHelper);
importPackage(java.io);

var con = facesContext.getExternalContext();
var response:com.ibm.xsp.webapp.XspHttpServletResponse = con.getResponse();

response.setContentType("application/pdf");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", -1);
response.setHeader("Content-Disposition","attachment; filename=\"LPO_" + pReqDoc.getItemValueString("RequisitionNo") + ".pdf\"");

var newPDF:com.itextpdf.text.Document = new com.itextpdf.text.Document();
var writer = com.itextpdf.text.pdf.PdfWriter.getInstance(newPDF,response.getOutputStream());
var xmlWorkerHelper = com.itextpdf.tool.xml.XMLWorkerHelper.getInstance();

var strHTML = getTestHTML(); //this is the HTML used in the examples on the iText site

xmlWorkerHelper.parseXHtml(writer, newPDF, new java.io.StringReader(strHTML));

newPDF.close();
writer.close();

facesContext.responseComplete();
}

如果我照原样运行这个脚本,我会在Domino控制台上得到一个脚本错误。如果我删除importPackage(com.itextpdf.tool.xml.XMLWorkerHelper);行上的注释,它会给出一个完全不同的错误。我怀疑我必须导入XMLWorkerHelper包,而不仅仅是com.itextpdf包。我想如果我使用像7-zip这样的工具打开jar文件,我就可以计算出路径,这就是我到达com.itextpdf.tool.xml.XMLWorkerHelper的方式

是这样的吗?如果是这样,为什么我的脚本失败了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-21 08:50:52

Rob,说真的,不要在SSJS中这样做。iText完全是Java语言,如果你试图用一种不同的语言来处理它,它会给你带来压力。创建一个包装类,该类的方法可以接受OutputStream和所需的任何数据(文档、视图等)。获取SSJS中的OutputStream并调用函数。在OpenNTF上查找XAgent XSnippet和我的博客系列(最后两个是缺失的-请耐心等待)。需要注意的一点是: iText是通用公共许可证,所以您要么也对您的软件进行GPL,购买一个商业iText许可证,要么寻找像Apache PDFBox或Apache FOP这样的替代品。啊,第二个警告: HTML到PDF是一个Pita。你可以考虑一个商业工具,比如来自Swing软件的(或者改变你的方法)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16657641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档