Java 换行字:break word不适用于iText 2.1.7
我正在使用Java和Itext2.1.7生成pdf,我已经编写了以下HTML。但当字数太长时,这并不是破坏Java 换行字:break word不适用于iText 2.1.7,java,html,css,pdf,itext,Java,Html,Css,Pdf,Itext,我正在使用Java和Itext2.1.7生成pdf,我已经编写了以下HTML。但当字数太长时,这并不是破坏 String td ="<td colspan=\"2\" align=\"left\" style=\"table-layout: fixed;word-wrap:break-word;white-space: normal;\"><b>" + verylongwordverylongwordverylongword + "
String td ="<td colspan=\"2\" align=\"left\" style=\"table-layout: fixed;word-wrap:break-word;white-space: normal;\"><b>"
+ verylongwordverylongwordverylongword + ":</b></td>"
String td=“”
+verylongwordverylongwordverylongword+“:”
有人能帮我做到这一点吗?Itext 2.7.1不支持word wrap:break word属性。下面是链接
public String getBrokenWordsForPdfGeneration(String longString, int cutIndex){
StringBuffer mainStringBuffer = new StringBuffer(longString);
String returnString = "";
while(mainStringBuffer != null && mainString.length()>0 &&
mainString.subString(0,mainString.length()>cutIndex?cutIndex:mainString.length()) != null){
if(mainStrig.subString(0,mainString.length()>cutIndex:mainString.length()).trim().contains(" ")){
returnString += mainStrig.subString(0,mainString.length()>cutIndex:mainString.length()).trim();
mainStringBuffer.delete(0,mainString.length()>cutIndex:mainString.length());
}else{
returnString += mainStrig.subString(0,mainString.length()>cutIndex:mainString.length()).trim()+ " ";
mainStringBuffer.delete(0,mainString.length()>cutIndex:mainString.length());
}
}
return returnString;
}
因此,我根据表中的列数,并假设最大字母数在60-65之间,手动将单词拆分。下面是代码
public String getBrokenWordsForPdfGeneration(String longString, int cutIndex){
StringBuffer mainStringBuffer = new StringBuffer(longString);
String returnString = "";
while(mainStringBuffer != null && mainString.length()>0 &&
mainString.subString(0,mainString.length()>cutIndex?cutIndex:mainString.length()) != null){
if(mainStrig.subString(0,mainString.length()>cutIndex:mainString.length()).trim().contains(" ")){
returnString += mainStrig.subString(0,mainString.length()>cutIndex:mainString.length()).trim();
mainStringBuffer.delete(0,mainString.length()>cutIndex:mainString.length());
}else{
returnString += mainStrig.subString(0,mainString.length()>cutIndex:mainString.length()).trim()+ " ";
mainStringBuffer.delete(0,mainString.length()>cutIndex:mainString.length());
}
}
return returnString;
}
break word是css3属性。iText是否完全支持css3当从html转换时,很难说文档是关闭的Hanks@Woody,由于您的评论,我实际上知道iText不支持break word。