我尝试将PdfAction与PdfOutline结合使用,以创建指向存储在中央网络位置的文档的链接。这样可以正常工作,但是当在网址中使用西里尔字符时,系统无法找到该文档。调查了解到,在Pdf打开的链接中,所有的西里尔字符都消失了?!。
我的代码:
//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");
我做错了什么?
答案 0 :(得分:1)
看起来你有一些字符串编码问题。该函数可能需要 UTF-8字符串,因为它检测到“非法”字符,它们会被剥离。您可以尝试对字符串进行编码,以便它可以通过该函数而不会被删除坏字符:
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!?");
}
}
还可以尝试查看此question以获取有关字符串编码的更多信息
最后,您的代码可能如下所示:
PdfAction act = new PdfAction(encodeFilename("file://CENTRALSERVER/Конвертинг/MyFile.xls"));