Java IText使用西里尔字母
我尝试将pdp功能与PdfOutline结合使用,以创建到存储在中央网络位置的文档的链接。这很好,但是当url中使用西里尔字符时,系统无法找到文档。调查发现,在Pdf打开的链接中,所有西里尔字母都消失了 我的代码:Java IText使用西里尔字母,java,itext,Java,Itext,我尝试将pdp功能与PdfOutline结合使用,以创建到存储在中央网络位置的文档的链接。这很好,但是当url中使用西里尔字符时,系统无法找到文档。调查发现,在Pdf打开的链接中,所有西里尔字母都消失了 我的代码: //Create the index tree PdfOutline index = new PdfOutline(writer.getDirectContent().getRootOutline(), new PdfDestination(PdfDestination.FITH)
//Create the index tree
PdfOutline index = new PdfOutline(writer.getDirectContent().getRootOutline(), new PdfDestination(PdfDestination.FITH), "Detailed Info");
//Add entry to index
PdfAction act = new PdfAction("file://CENTRALSERVER/Конвертинг/MyFile.xls");
new PdfOutline(index, act, "My File");
我做错了什么 看起来您遇到了一些字符串编码问题。该函数可能需要一个UTF-8字符串,因为它检测到被剥离的“ilegal”字符。您可以尝试对字符串进行编码,以便它可以在不删除坏字符的情况下通过函数:
public static String encodeFilename(String s)
{
try
{
return java.net.URLEncoder.encode(s, "UTF-8");
}
catch (java.io.UnsupportedEncodingException e)
{
throw new RuntimeException("UTF-8 is an unknown encoding!?");
}
}
另外,请尝试查看此文档以了解有关字符串编码的更多信息
最终,您的代码可能如下所示:
PdfAction act = new PdfAction(encodeFilename("file://CENTRALSERVER/Конвертинг/MyFile.xls"));
我对jasper reports也有同样的问题,它在深层次上产生了一个问题。我使用了编码,但不幸的是IE不喜欢%编码的文件URL,所以我必须运行生成的pdf,找到URL并再次解码。