当前位置: 首页 > 知识库问答 >
问题:

使用飞碟将XHTML分页为PNG图像文件

轩辕涵亮
2023-03-14

我正在使用飞碟从XHTML创建PNG图像文件。然后,我使用另一个工具将这些与一堆其他文本n图像一起收集到PDF中。

虽然我可以将PDF导出处理转换为iText,但这将是一项相当大的任务。。。。

我的问题是,当导出到PNG图像文件时,一些XHTML内容需要分页。我只需要在图像文件之间进行一个简单的“剪辑样式”分割就可以了。

下面是我用来将整个内容呈现到单个文件中的内容,效果很好。

File file = File.createTempFile("AAA", "." + suffix);
XHTMLPanel panel = new XHTMLPanel();
panel.setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);

InputStream is = <create content>;

panel.setDocument(is, "");

Graphics2DRenderer renderer = new Graphics2DRenderer();
renderer.setDocument(panel.getDocument(),"");

BufferedImage img = new BufferedImage(DEFAULT_WIDTH,
         DEFAULT_HEIGHT, BufferedImage.TYPE_INT_ARGB);
Graphics2D graphics = (Graphics2D) img.getGraphics();
graphics.setColor(Color.white);
graphics.fillRect(0, 0, DEFAULT_WIDTH, DEFAULT_HEIGHT);

renderer.layout(graphics,null);         
renderer.render(graphics);

ImageIO.write(img, suffix, file);

然而,我的一些内容“跨越”了几页,上面的处理只显示了顶部的默认高度像素,并剪辑了其余部分。

有没有一种方法可以“迭代”面板内容(垂直)并将内容的X像素渲染到唯一的图像文件?这就是ITextRenderer所做的,但是如何将各个页面渲染为单独的图像文件呢?

共有1个答案

赫连子石
2023-03-14

幸运的是,Graphics2DRender让我知道XHTML部分有多大(宽n高)。

我只是重新渲染成那个大小的BufferedImage,然后迭代地将完整图像的一部分剥离成“页面”图像,使用Grahpics2D. draImage(Image,,),然后将它们转储到磁盘。

不是最漂亮的,但它很管用。

 类似资料:
  • 这是一个例外。。 Java语言lang.ClassCastException:org。XHTMLender。提供BlockBox无法转换为组织。XHTMLender。牛顿表。桌子盒

  • 问题内容: 我正在使用飞碟将XHTML转换为PDF文档。我已经获得了仅可用于基本HTML和嵌入式CSS的代码,但是,现在,我试图将图像添加为PDF的标题。我想知道的是,是否有任何办法通过将图像文件读取为Java Image对象来添加图像,然后以某种方式将其添加到PDF(或XHTML中,就像它获得了虚拟的“ URL”一样)表示可用于呈现PDF的Image对象。有没有人做过这样的事情? 预先感谢您提供

  • 我正在使用飞碟将XHTML转换为PDF文档。我已经让代码只使用基本的HTML和内嵌CSS,然而,现在我正试图将一个图像作为某种头添加到PDF中。我想知道的是,是否有任何方法可以添加图像,通过读取图像文件作为Java图像对象,然后以某种方式将其添加到PDF(或XHTML——就像它得到一个虚拟的“url”,表示可以用于呈现PDF的图像对象)。有人做过这样的事吗? 提前感谢您提供的任何帮助!

  • 我试图从包含html代码的Java字符串生成pdf文档。我使用“Freemarker”作为模板引擎来生成html内容,然后使用“Flying Discer”将生成的html转换为pdf。我的问题是,图像不会在生成的pdf中呈现。关于我如何生成的具体细节如下: 生成的html(仅显示相关部分)为: 此代码作为部署在Tomcat上的War运行。作为tree命令(在WEB-INF中运行)的输出,图像在战

  • 我有一个jsp文件,我喜欢使用飞碟将其转换为PDF。以下是jsp文件: 以下是我用于将html解析为pdf的servlet代码: } } 我有个例外 有人能帮我吗?有没有可能从这种html页面创建pdf

  • 使用飞碟以PDF格式打印图像。 超文本标记语言代码: 当我使用飞碟将HTML转换为PDF时。生成的PDF不会打印图像。 我需要使用任何特定的软件包来打印PDF格式的图像吗。如果你有任何问题,请告诉我。