Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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
Itext7 Itext 7 HtmlConverter无法包装不包含空格字符的单词_Itext7 - Fatal编程技术网

Itext7 Itext 7 HtmlConverter无法包装不包含空格字符的单词

Itext7 Itext 7 HtmlConverter无法包装不包含空格字符的单词,itext7,Itext7,我正在使用iText html2PDFversion 2.0.0将HTML转换为PDF 在我的HTML文件中,有太多无法包装在表列中的单词 它可以在iText 5库中完成。 这是我的HTML和java文件 TM_报告 .div半宽{ 显示:内联; 宽度:50%; 颜色:红色; } 3aaa2aaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

我正在使用
iText html2PDF
version 2.0.0将HTML转换为PDF

在我的HTML文件中,有太多无法包装在表列中的单词

它可以在
iText 5
库中完成。 这是我的HTML和java文件


TM_报告
.div半宽{
显示:内联;
宽度:50%;
颜色:红色;
}
3aaa2aaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

4aaaaaaaaaaaaaaaaaaaaaaaaabbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa2

aaaa22aaaa-aaaaaaaaaaaa-aaaaaaaaaaaaaaaa-bbbbbbbbbbb-bbbbbbbbbb-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

你需要看看这个界面

public interface ISplitCharacters {

/**
 * Returns <CODE>true</CODE> if the character can split a line. The splitting implementation
 * is free to look ahead or look behind characters to make a decision.
 * @param glyphPos the position of {@link Glyph} in the {@link GlyphLine}
 * @param text an array of unicode char codes which represent current text
 */
boolean isSplitCharacter(GlyphLine text, int glyphPos);

}
默认实现(由文档使用)是
DefaultSplitCharacters
,它被设置为以各种形式的空格分割

最好的解决方案是编写一个类,该类继承自
DefaultSplitCharacters
,并添加自己的额外分割字符(如字母数字字符)

为了设置它,您可以在根元素上使用
setProperty
(从中继承
Document
)。属性名称为
property.SPLIT_字符

由于您从未在原始代码中创建布局
文档
,因此需要进行一些修补

您可以使用以下代码渲染到
列表

List<IElement> elements = HtmlConverter.convertToElements(stream, converterProperties);
List elements=HtmlConverter.convertToElements(流、转换器属性);

然后,您可以将元素添加到
文档
,该文档是通过正确实现
ISplitCharacters

Document Document=new Document(pdfDoc)预先设置的;document.setProperty(Property.SPLIT_CHARACTERS,new DefaultSplitCharacters(){@Override public boolean isSplitCharacter(GlyphLine text,int glyphppos){return true;}});这个成功了