Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用html中的飞碟以PDF格式呈现嵌入图像_Java_Pdf Generation_Embedded Resource_Flying Saucer_Xhtmlrenderer - Fatal编程技术网

Java 使用html中的飞碟以PDF格式呈现嵌入图像

Java 使用html中的飞碟以PDF格式呈现嵌入图像,java,pdf-generation,embedded-resource,flying-saucer,xhtmlrenderer,Java,Pdf Generation,Embedded Resource,Flying Saucer,Xhtmlrenderer,我有一个xhtml文档,我正在使用flyingsaucer将其转换为PDF。xhtml有几个标签,这些标签内联了base64编码的图像。xhtml的源是动态的,因此图像标记所在位置的结构可能会有所不同。这是标记外观的示例: <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAagAAAEuCAYAAADbW4YFAAAgAElEQVR4Aex9CYBdRZ ... 有人能告诉我应该采取什么方法来实现这一点吗?然而,我看到,我使

我有一个xhtml文档,我正在使用flyingsaucer将其转换为PDF。xhtml有几个标签,这些标签内联了base64编码的图像。xhtml的源是动态的,因此图像标记所在位置的结构可能会有所不同。这是标记外观的示例:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAagAAAEuCAYAAADbW4YFAAAgAElEQVR4Aex9CYBdRZ ...
有人能告诉我应该采取什么方法来实现这一点吗?然而,我看到,我使用的是内联图像,所以我不知道如何使用Edd的解决方案来实现这一点


提前感谢

是的,您可以使用此处给出的方法:

其中Edd有:

        InputStream input = null;
        try {
            input = ...;
            byte[] bytes = IOUtils.toByteArray(input);
            Image image = Image.getInstance(bytes);

在Edd的例子中,图像来自远程源(他使用
输入=…;
跳过该位)。在您的情况下,您只需要从Base64编码的数据中读取它(在
Base64,
之后的文本)。首先使用a将二进制数据获取到
byte[]
或流中,然后您可以使用从字节创建图像,并按照Edd的方法将图像获取到PDF中。在此向Edd致敬(请向上投票!).

飞碟本机支持数据:协议。您只需注册协议处理程序:

-Djava.protocol.handler.pkgs=org.xhtmlrenderer.protocols

不需要servlets WhatsOver。

您有协议处理程序注册方式的链接吗?有一个功能请求,可使图像的数据url直接在飞碟中工作:
-Djava.protocol.handler.pkgs=org.xhtmlrenderer.protocols