为有中文需求的客户提供多渠道中文技术支持.

Wed Jul 12, 2023 10:12 am

将下面html文本保存到123.html文件里,读取后转图片,不显示边框线,另外一个问题是在线解析html的时候显示完“底下还有一段文字66666666666666”之后就没有了,生成的图片下面为什么还有很多空白呢?这两个问题怎么解决?
1)123.html文件内容如下:
<p><strong>这是一个标题加粗</strong></p>
<table style="border-collapse: collapse; width: 45.2568%; height: 243px;" border="1"><colgroup><col style="width: 50.0421%;"><col style="width: 50.0421%;"></colgroup>
<tbody>
<tr style="height: 55.8px;">
<td style="height: 55.8px;">产品名称</td>
<td style="height: 55.8px;"><strong><span data-type="textArea" data-text="这是一个文本框" data-source="固定值" data-value="000000" data-remark="remark"> 这是一个文本框 </span></strong></td>
</tr>
<tr style="height: 104px;">
<td style="height: 104px;">产品二维码</td>
<td style="height: 104px;"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAIAAAD/gAIDAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACT0lEQVR4nO2c0W7DIAxFm2n//8vdWxWplPjYhqXSOY/tAvTKNtjxOJ7P50Ni/Pz3Ar4JxQIoFkCxAIoF+H3/6DiOrtFfW+1wzOG3w915vqT5LDmGy9CyAIoFUCzAIGadSZzv5+EpN048unXNOETLAigW4MINX1yaaNDs435UmeXTjMUxtSyAYgEUCxCNWUWKiUgw3VmNlgVQLMAmN4x7SjwBaKwxBNGyAIoFUCxANGZt257jZc/gkhpXrmUBFAtw4YZd2/NrnLNTrPjw/dtGtCyAYgEUC3DcoeWomOJYdbgjigXIvLBIHLLne//8kdzgQ+KnDXsdqigWYLAbxj2uq6R3OXjQi4vn+8ufo2UBFAugWICLE3wxd58HxMmfPQKhs+tcYq/DEhQLkHHDxImhWFmPOxodED2lZQEUC6BYgIt058XqTGL+eJBcLSGOlgVQLED/CT4+4NKpE9HA4l8nigVQLECmUro0KnX9c2ZXjfeMlgVQLED06BBP9+dn/ZxTVFqOcisfomUBFAugWIDSS9YziaiU6FHoIpcYaVkAxQJs6vwrdhZXvDjnwrphFcUCbLrlKJ6Qd3lc/D6R+KasZQEUC6BYgE23HMXj4DCCBBOJ3NtJW46WoFiA3bccxUtx8S6C9pebn9CyAIoFUCzA7utVit3K8zFzJT3TnSUoFuAWl40VXyYOP0nUJ2w56kSxAIoF2HTLUTwuxIsWwT7r+IweHTpRLMCmW47mgw/rfAmKfVEeHTpRLIBiAW5xy9G3oGUBFAugWADFAigWQLEAf5u/rbq5Udt6AAAAAElFTkSuQmCC" width="100" data-type="qrcode" data-qrcode="qrcode" data-text="qwe/"></td>
</tr>
<tr style="height: 20.8px;">
<td style="height: 20.8px;">带格式的数据</td>
<td style="height: 20.8px;"><i><strong><span style="color: rgb(224, 62, 45);">红色加粗斜体</span></strong></i></td>
</tr>
<tr>
<td>带格式的数据1</td>
<td style="text-align: center;"><span style="color: rgb(0, 0, 0);">表格内居中</span></td>
</tr>
</tbody>
</table>
<p>底下还有一段文字66666666666666</p>
2)在main方法运行下面方法:
public static void html2Img() throws IOException {
//创建Document类的实例
Document document = new Document();

//加载HTML文档
document.loadFromFile("D:/123.html", FileFormat.Html, XHTMLValidationType.None);

//保存为图片格式(支持:BMP, JPEG, PNG, GIF, Tiff等多种图片格式)
BufferedImage image = document.saveToImages(0, ImageType.Bitmap);
String result = "D:/555.png";
File file = new File(result);
ImageIO.write(image, "png", file);
}

3)版本:spire.doc 11.7.0
4)环境:idea 2023.1.3 ,jdk1.8
5)另一个还发现了第三个问题:如果换成spire.doc.free 的 5.2.0版本执行同样的代码,表格线能正常显示,但是斜体不能正常展示成斜体

liuyanjiao
 
Posts: 2
Joined: Wed Jul 12, 2023 9:53 am

Thu Jul 13, 2023 4:10 am

您好,

感谢您提供信息。
我测试了您提供的代码,复现了您的问题,我已将这个问题提交给我们的开发团队进行调查修复,问题编号为SPIREDOC-9642。一旦此问题解决,我会及时告知你的。同时因为我们的Spire.Doc将HTML转图片采用流式(从上到下)布局来转换的,转换默认的页面大小是A4,所以下面会有空白。在线解析显示完文字“底下还有一段文字66666666666666”之后就没有了,抱歉您提供的HTML代码在这之后就没有内容了,所以在线解析HTML后面自然也没有内容。 另外,经过我们使用下面的代码测试结果图片没有问题,您可以将此代码作为一种临时解决方案进行测试使用:
Code: Select all
 Document document = new Document();
        document.loadFromFile("F:\\123.html", FileFormat.Html, XHTMLValidationType.None);
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        document.saveToStream(outputStream,FileFormat.Docx);
        ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
        document.loadFromStream(inputStream,FileFormat.Docx);
        BufferedImage image = document.saveToImages(0, ImageType.Bitmap);
        String result = "F:\\555.png";
        File file = new File(result);
        ImageIO.write(image, "png", file);


Sincerely
Wenly
E-iceblue support team
User avatar

Wenly.Zhang
 
Posts: 149
Joined: Tue May 16, 2023 2:19 am

Thu Jul 13, 2023 6:59 am

Wenly.Zhang wrote:您好,

感谢您提供信息。
我测试了您提供的代码,复现了您的问题,我已将这个问题提交给我们的开发团队进行调查修复,问题编号为SPIREDOC-9642。一旦此问题解决,我会及时告知你的。同时因为我们的Spire.Doc将HTML转图片采用流式(从上到下)布局来转换的,转换默认的页面大小是A4,所以下面会有空白。在线解析显示完文字“底下还有一段文字66666666666666”之后就没有了,抱歉您提供的HTML代码在这之后就没有内容了,所以在线解析HTML后面自然也没有内容。 另外,经过我们使用下面的代码测试结果图片没有问题,您可以将此代码作为一种临时解决方案进行测试使用:
Code: Select all
 Document document = new Document();
        document.loadFromFile("F:\\123.html", FileFormat.Html, XHTMLValidationType.None);
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        document.saveToStream(outputStream,FileFormat.Docx);
        ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
        document.loadFromStream(inputStream,FileFormat.Docx);
        BufferedImage image = document.saveToImages(0, ImageType.Bitmap);
        String result = "F:\\555.png";
        File file = new File(result);
        ImageIO.write(image, "png", file);


Sincerely
Wenly
E-iceblue support team

我最后另外说那个问题,spire.doc.free 5.2.0版本处理这个html转图片的时候,为什么斜体没有正常显示为斜体呢,这个有临时解决方案吗,这个free版本的斜体显示问题会一起修复吗

liuyanjiao
 
Posts: 2
Joined: Wed Jul 12, 2023 9:53 am

Thu Jul 13, 2023 7:30 am

您好,

感谢您的反馈。
很抱歉暂时没有free版本的临时解决方案。由于我们只定期维护商业版,所以此问题的修复只包含在商业版。由此造成的不便深感抱歉。

Sincerely
Wenly
E-iceblue support team
User avatar

Wenly.Zhang
 
Posts: 149
Joined: Tue May 16, 2023 2:19 am

Return to 中文技术支持

cron