巴中模板建站价格多少网站备案 个人 单位
news/
2025/9/23 19:56:36/
文章来源:
巴中模板建站价格多少,网站备案 个人 单位,优化系统小说,广州知名网站建设网页设计服务Flying-Saucer是一个不错的库#xff0c;可以从Java应用程序中生成PDF文档。 只需生成一堆XHTML#xff0c;然后将其放入渲染器中#xff0c;然后使用iText生成所需的文档即可。 但是#xff0c;当涉及条形码时#xff0c;Flying-Saucer无法访问iText的内置条形码功能可以从Java应用程序中生成PDF文档。 只需生成一堆XHTML然后将其放入渲染器中然后使用iText生成所需的文档即可。 但是当涉及条形码时Flying-Saucer无法访问iText的内置条形码功能至少我没有找到任何有关它的文档。 但是由于采用开放源代码并经过精心设计因此只需创建一个子类即可完成此任务Flying-Saucer依赖于名为ReplacedElementFactory的工厂该工厂可以用自定义对象替换元素。 这也用于嵌入图像如ITextReplacedElementFactory类所示。 现在我们可以简单地创建一个子类用适当的条形码替换图像 img src 0123456789type code128style height1cm/ 一个人只需要像这样重写createReplacedElement方法整个代码可以在这里找到 BarcodeReplacedElementFactory.javaGitHub Overridepublic ReplacedElement createReplacedElement(LayoutContext c, BlockBox box,UserAgentCallback uac, int cssWidth, int cssHeight) {Element e box.getElement();if (e null) {return null;}String nodeName e.getNodeName();if (nodeName.equals(img)) {if (code128.equals(e.getAttribute(type))) {try {Barcode128 code new Barcode128();code.setCode(e.getAttribute(src));FSImage fsImage new ITextFSImage(Image.getInstance(code.createAwtImage(Color.BLACK, Color.WHITE),Color.WHITE));if (cssWidth ! -1 || cssHeight ! -1) {fsImage.scale(cssWidth, cssHeight);}return new ITextImageElement(fsImage);} catch (Throwable e1) {return null;}}}return super.createReplacedElement(c, box, uac, cssWidth, cssHeight);} 当然对于img /“类型”不是有效的XHTML元素但是如您在上面的代码中所见您可以轻松地用data-type或任何其他属性替换它。 无论如何飞碟似乎并不在乎这一点。 注意上面的代码只能处理Code128-Barcodes但是可以轻松扩展以处理EAN等默认情况下iText支持一堆条形码。 为了使我们的工厂正常工作我们需要将其传递给渲染器这很简单 ITextRenderer renderer new ITextRenderer();renderer.getSharedContext().setReplacedElementFactory(new BarcodeReplacedElementFactory(renderer.getOutputDevice()));renderer.setDocumentFromString(inputAsString);renderer.layout();renderer.createPDF(outputAsStream); 参考在Andy的软件工程专栏博客中我们的JCG合作伙伴 Andreas Haufler 用Flying-Saucer生成了PDF中的条形码 。 翻译自: https://www.javacodegeeks.com/2012/12/generating-barcodes-in-pdfs-with-flying-saucer.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/913707.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!