2016-05-26 5 views
1

Ich versuche, die PdfAction in Kombination mit der PdfOutline zu verwenden, um eine Verknüpfung zu einem Dokument zu erstellen, das an einem zentralen Netzwerkstandort gespeichert ist. Dies funktioniert gut, aber wenn kyrillische Zeichen in der URL verwendet werden, kann das System das Dokument nicht finden. Untersuchung erfuhr, dass in dem Link, der durch den Pdf geöffnet wurde, alle kyrillischen Zeichen weg sind?!.IText PdfAction mit kyrillischen Zeichen

Mein Code:

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

Was habe ich falsch gemacht?

Antwort

1

Es sieht so aus, als ob Sie einige Probleme mit der Zeichenfolgencodierung haben. Die Funktion erwartet wahrscheinlich eine UTF-8-Zeichenfolge, da sie 'ilegal' Zeichen erkennt, werden sie entfernt. Sie können kodiert Ihre Zeichenfolge versuchen, damit es durch die Funktion gehen kann, ohne von schlechten Zeichen entfernt werden:

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!?"); 
    } 
} 

Versuchen Sie auch in diesem question für weitere Informationen über String-Codierung

Am Ende Code suchen aussehen könnte wie folgt:

PdfAction act = new PdfAction(encodeFilename("file://CENTRALSERVER/Конвертинг/MyFile.xls"));