Umlauts do not get encoded properly (probably only on some platforms). Cause is that PrintWriter uses the platform default encoding (which may not be the correct one). To fix this, change PDFWriter.getWriter to
public PrintWriter getWriter() {
try {
return new PrintWriter(new OutputStreamWriter(buf, "ISO-8859-1"),true);
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
}
Best, Arne