- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我的 HTML 字符串有时包含中文单词,并且我的代码在中文单词的位置显示空白
我的 HTML 看起来像这样
<html>
<body>
<div>
<table border='1' align='center' cellpadding='1' cellspacing='0'>
<tr>
<td bgcolor= '#d1eb9d' align='left' width='60%'><font size='2'><b>Answer choices</b></td>
<td bgcolor= '#d1eb9d' align='center' width='20%'><font size='2'><b>Percentage</b></td>
<td bgcolor= '#d1eb9d' align='center' width='20%' ><font size='2'><b>Responses</b></div></td>
</tr>
</div>
</td>
<td align='left' ><div>紅</div></td>
<td align='center' ><div >66.67%</div></td>
<td align='center'><div >2</div></td><
/tr>
</div>
</td>
<td align='left' ><div>黃</div></td>
<td align='center' ><div >66.67%</div></td>
<td align='center'><div >2</div></td>
</tr>
</div>
</td>
<td align='left' ><div>粉紅</div></td>
<td align='center' ><div >33.33%</div></td>
<td align='center'><div >1</div></td>
</tr>
</div>
</td>
<td align='left' ><div>藍</div></td>
<td align='center' ><div >33.33%</div></td>
<td align='center'><div >1</div></td>
</tr>
</div>
</td>
<td align='left' ><div>綠</div></td>
<td align='center' ><div >0.0%</div></td>
<td align='center'><div >0</div></td>
</tr>
<tr>
<td bgcolor= '#d1eb9d' ></td>
<td bgcolor= '#d1eb9d' align='right' ><font size='2'><i><b>Total</b></i></td>
<td bgcolor= '#d1eb9d' align='center' >3</td></tr>
</table>
</div>
</body>
</html>
这是我解析上面字符串的代码
StringBuilder sb= new StringBuilder();
String startstr = "<div>"
+"<table border='1' align='center' cellpadding='1' cellspacing='0'>"
+"<tr>"
+"<td bgcolor= '#d1eb9d' align='left' width='60%'><font size='2'><b>Answer choices</b></td>"
+"<td bgcolor= '#d1eb9d' align='center' width='20%'><font size='2'><b>Percentage</b></td>"
+"<td bgcolor= '#d1eb9d' align='center' width='20%' ><font size='2'><b>Responses</b></div></td>"
+"</tr>";
String endString="<tr>"
+"<td bgcolor= '#d1eb9d' ></td>"
+"<td bgcolor= '#d1eb9d' align='right' ><font size='2'><i><b>Total</b></i></td>"
+"<td bgcolor= '#d1eb9d' align='center' >";
String finalString= "</td>"
+"</tr>"
+"</table>"
+"</div>";
sb.append(startstr);
int sum=0;
for (Map.Entry<String, String> queMap1 : qvo.getResponseMap().entrySet()){
String value=queMap1.getValue();
sum+=Integer.parseInt(value);
}
////////////////////////////////////////////////////////////////////////////System.out.println("type of question in gettable"+qvo.getType());
for (Map.Entry<String, String> queMap1 : qvo.getResponseMap().entrySet()){
String key=queMap1.getKey();
String value=queMap1.getValue();
String[] splitarr= key.split(",");
String type= qvo.getType();
sb.append("</div></td>");
sb.append("<td align='left' ><div>");
if(surveyType.equalsIgnoreCase("singlesurvey")){
sb.append(splitarr[2]);
}else sb.append(splitarr[0]);
sb.append("</div></td>");
sb.append("<td align='center' ><div >");
if(type.equalsIgnoreCase("M") || type.equalsIgnoreCase("P")){
sum=Integer.parseInt(surveyNumberResponses);
}
double percent=getPercentage(value,String.valueOf(sum));
sb.append(String.valueOf(percent)+"%");
sb.append("</div></td>");
// response
sb.append("<td align='center'><div >");
sb.append(value);
sb.append("</div></td>");
sb.append("</tr>");
}
sb.append(endString);
sb.append(String.valueOf(sum));
sb.append(finalString);
try {
htmlWorker.parse(new StringReader(sb.toString()));
} catch (IOException e) {}
上面的代码可以正确呈现英文,并在中文单词的位置显示空格
英语图像如下所示
请建议我如何在 PDF 中的 HTML 字符串中显示可用的中文单词,我正在使用 iText api 创建 PDF
更新
现在我使用此代码来解析上面的字符串仍然显示空格
String ttfFontName=System.getProperty("user.dir")+"/ARIALUNI.TTF";
XMLWorkerFontProvider fontImp = new XMLWorkerFontProvider(XMLWorkerFontProvider.DONTLOOKFORFONTS);
XMLWorkerHelper worker = XMLWorkerHelper.getInstance();
fontImp.register(ttfFontName);
FontFactory.setFontImp(fontImp);
InputStream is = new ByteArrayInputStream(sb.toString().getBytes("UTF-8"));
worker.parseXHtml(writer, document, is,null, Charset.forName("UTF-8"), fontImp);
请帮助我,提前致谢
最佳答案
谢谢BrunoLowagie我终于找到了问题的解决方案。正如我在上面的问题中编辑的那样,在使用 XMLWorkerHelper 后,我的 PDF 仍然在中文单词的位置显示空白,这是因为我没有在 HTML 代码的样式标记中指定字体(我为 XMLWorkerFontProvider 对象注册)。现在 HTML 代码将如下所示
String str="<html><head>"
+ "<meta http-equiv=\"content-type\" content=\"application/xhtml+xml; charset=UTF-8\"/>"
+ "</head>"
+ "<body>"
+ "<div>"
+ "<table border='1' align='center' cellpadding='5' cellspacing='0'>"
+ "<tr>"
+ "<td style='background-color:#d1eb9d;' align='left' width='40%'><font size='3'><b>Answer choices</b></font></td>"
+ "<td style='background-color:#d1eb9d; ' align='center' width='20%'><font size='3'><b>Percentage</b></font></td>"
+ "<td style='background-color:#d1eb9d; ' align='center' width='20%' ><font size='3'><b>Responses</b></font></td>"
+ "</tr>"
+ "<tr>"
+ "<td style=\"font-family: arial unicode ms, ARIALUNI; font-size:16px; font-weight: normal;\" align='left' ><div>藍</div></td>"
+ "<td style='text-align:center;' ><div >66.67%</div></td>"
+ "<td style='text-align:center;'><div >2</div></td></tr>"
+ "<tr>"
+ "<td style=\"font-family: arial unicode ms, ARIALUNI; font-size:16px; font-weight: normal;\" align='left' ><div>粉紅</div></td>"
+ "<td style='text-align:center;' ><div >66.67%</div></td>"
+ "<td style='text-align:center;' ><div >2</div></td>"
+ "</tr>"
+ "<tr>"
+ "<td style=\"font-family: arial unicode ms, ARIALUNI; fkont-size:16px; font-weight: normal;\" align='left' ><div>apple</div></td>"
+ "<td style='text-align:center;' ><div >33.33%</div></td>"
+ "<td style='text-align:center;'><div >1</div></td>"
+ "</tr>"
+ "<tr>"
+ "<td style=\"font-family: arial unicode ms, ARIALUNI; font-size:16px; font-weight: normal;\" align='left' ><div>紅</div></td>"
+ "<td style='text-align:center;' ><div >33.33%</div></td>"
+ "<td style='text-align:center;'><div >1</div></td>"
+ "</tr>"
+ "<tr>"
+ "<td align='left' style=\"font-family: arial unicode ms, ARIALUNI; font-size:16px; font-weight: normal;\" ><div>綠</div></td>"
+ "<td style='text-align:center;' ><div >0.0%</div></td>"
+ "<td style='text-align:center;'><div >0</div></td>"
+ "</tr>"
+ "<tr>"
+ "<td style='background-color:#d1eb9d;' ></td>"
+ "<td style='background-color:#d1eb9d;' align='right' ><font size='3'><i><b>Total</b></i></font></td>"
+ "<td style='background-color:#d1eb9d;' align='center' >3</td></tr>"
+ "</table>"
+ "</div>"
+ "</body>"
+ "</html>";
Java 代码将如下所示
String ttfFileName=System.getProperty("user.dir")+"/ARIALUNI.TTF";
XMLWorkerFontProvider fontImp = new XMLWorkerFontProvider(XMLWorkerFontProvider.DONTLOOKFORFONTS);
XMLWorkerHelper worker = XMLWorkerHelper.getInstance();
fontImp.register(ttfFileName);
FontFactory.setFontImp(fontImp);
InputStream is = new ByteArrayInputStream(sb.toString().getBytes("UTF-8"));
worker.parseXHtml(writer, document, is,null, Charset.forName("UTF-8"), fontImp);
谢谢您,希望这篇文章对其他人有帮助。
关于java - 如何使用 iText 的 HTMLWorker 类将多语言 HTML 字符串渲染为 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34353639/
我已经使用itextsharp dll(v5.5.9.0)从Asp.net Mvc中的HTML生成PDF。在这里,我使用的是HTMLWorker类。我得到的结果符合我的要求。现在工作正常。但它显示为[
我正在使用 java i text 生成 pdf。我的pdf中的一些数据来自html。我正在使用 HTMLWorker.parseToList 来创建它。 我的问题是它忽略了写在 html 标签内的背
Document document = new Document(PageSize.LETTER, 10, 10, 10, 10); StringReader reader = new StringR
我必须从 HTML 源创建 PDF 文件。目前,我正在处理有关输出文件中特殊(抛光)字符的问题,正是因为它们的缺失。 HTML 来源: Test: ąęłóćńśŁÓŃĆŻŹ
我对 HTMLWorker.Parse From iTextSharp 有问题Windows 窗体程序。每次当我执行代码时从 HTMLWorker.Parse 开始,它给出了 objectDispos
我无法在 iText 7 中找到 HTMLWorker、ParseXHtml、Document 和其他相关类(与 iText 5 不同)。谁能告诉我如何使用 iText 7 将 HTML 文件转换为
我使用 Ajax 将 Telerik MVC Editor 的内容作为字符串发送到 Controller :我出来的是: "Hello world! " 在 Controller 中,我使用以下命令将
我有以下一段用于在 Web 应用程序中导出 PDF 的代码,该代码创建带有 2x2 表格单元格的 PDF。 public static void myexport2() throws IOExcept
我正在尝试将 float 属性应用于 itext 中的 div。内容是一个HTML内容 Document document = new Document(PageSize.A4, 36, 72, 10
我正在使用 iTextSharp v.4 合并一大堆 html 文件。它工作正常,直到我需要升级到 iTextSharp v.5。 当我将流读取器(读取 html 文件的内容)传递给 HTMLWork
您好,我已经成功地使用 HTMLWorker 使用 asp.NET/C# 转换 gridview。 (1) 我已对生成的表格应用了一些有限的样式,但看不到如何应用表格样式(例如网格线)或应用其他格式样
我正在使用此代码以 pdf 格式邮寄数据表。但是在使用 html 解析器转换数据时,它显示异常为 Stack Empty。但是我以前做过这个并且它有效,我只是不能指出我现在缺少的东西。请帮忙!!!!!
我的 HTML 字符串有时包含中文单词,并且我的代码在中文单词的位置显示空白 我的 HTML 看起来像这样 Answer choices Percentage Responses 紅
我使用 iTextSharp (V 5.4.2.0) 将 html 页面转换为 pdf。但我希望能够设置一个新页面。 我已经试过了: 和标签 但它不起作用。创建一个 html 页面的最
我是一名优秀的程序员,十分优秀!