Witam mam problem korzystam z flying sourcera do generowania pdf z html i cały czasu gubi mi polskie znaki kod tworzenia pdf
public byte[] generateBytes(String htmlContent) {
byte[] pdf = null;
try {
htmlContent = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><!DOCTYPE html><html><head></head><body>" + htmlContent + "</body></html>";
ByteArrayOutputStream out = new ByteArrayOutputStream();
ITextRenderer renderer = new ITextRenderer();
renderer.setDocumentFromString(htmlContent);
renderer.layout();
renderer.createPDF(out);
pdf = out.toByteArray();
} catch (Exception e) {
e.printStackTrace();
}
return pdf;
}
Robie to jak we wszystkich odnalezionych przykładach używałem też :
<meta charset="utf-8" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
i już nie wiem co jest grane :D pomoże ktoś?:P Nawet metode kodujaca jakas znalazlem ale tez nie dziala:
public static String escapeHTML(String s){
StringBuffer sb = new StringBuffer();
int n = s.length();
for (int i = 0; i < n; i++) {
char c = s.charAt(i);
switch (c) {
case 'ą': sb.append("ą"); break;
case 'ć': sb.append("ć"); break;
case 'ę': sb.append("ę"); break;
case 'ł': sb.append("ł"); break;
case 'ń': sb.append("ń"); break;
case 'ó': sb.append("ó"); break;
case 'ś': sb.append("ś"); break;
case 'ź': sb.append("ź"); break;
case 'ż': sb.append("ż"); break;
case 'Ą': sb.append("Ą"); break;
case 'Ć': sb.append("Ć"); break;
case 'Ę': sb.append("Ę"); break;
case 'Ł': sb.append("Ł"); break;
case 'Ń': sb.append("Ń"); break;
case 'Ó': sb.append("Ó"); break;
case 'Ś': sb.append("Ś"); break;
case 'Ź': sb.append("Ź"); break;
case 'Ż': sb.append("Ż"); break;
default: sb.append(c); break;
}
}
return sb.toString();
}