2016-05-26 81 views
1

我嘗試將PdfAction與PdfOutline結合使用來創建指向存儲在中央網絡位置的文檔的鏈接。這工作正常,但是當在URL中使用西里爾文字符時,系統找不到文檔。調查瞭解到,在由Pdf打開的鏈接中,所有西里爾字符都沒有了?!使用西里爾字符的IText PdfAction

我的代碼:

//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"); 

我做了什麼錯?

回答

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"));