Android PDF Write(APW) を使用して PDF を作成していますが、一部の特殊文字 (ポルトガル語) では機能しません。
mypdf.addText(170, 50, 40,"Coração");
標準エンコーディングは次のとおりです。
mypdf.setFont(StandardFonts.SUBTYPE, StandardFonts.COURIER, StandardFonts.WIN_ANSI_ENCODING);
outputToFile("helloworld.pdf",pdfcontent,"ISO-8859-1");
やってみた
outputToFile("helloworld.pdf",pdfcontent,"UTF-8");
outputToFile("helloworld.pdf",pdfcontent,"UTF-16");
outputToFile("helloworld.pdf",pdfcontent,"Cp1252");
そして成功しませんでした。どうすればいいですか?
編集
メソッド outputToFile は次のように定義されます。
private void outputToFile(String fileName, String pdfContent, String encoding) {
File newFile = new File(Environment.getExternalStorageDirectory() + "/" + fileName);
try {
newFile.createNewFile();
try {
FileOutputStream pdfFile = new FileOutputStream(newFile);
pdfFile.write(pdfContent.getBytes(encoding));
pdfFile.close();
} catch(FileNotFoundException e) {
//
}
} catch(IOException e) {
//
}
}
メソッド addText は次のように定義されます。
public void addText(int leftPosition, int topPositionFromBottom, int fontSize, String text, String transformation) {
addContent(
"BT\n" +
transformation + " " + Integer.toString(leftPosition) + " " + Integer.toString(topPositionFromBottom) + " Tm\n" +
"/F" + Integer.toString(mPageFonts.size()) + " " + Integer.toString(fontSize) + " Tf\n" +
"(" + text + ") Tj\n" +
"ET\n"
);
}
さらに、フォントの色を白に変更して、次の rawcontent を追加します。
mypdf.addRawContent("1 1 1 rg\n");
次に、黒のフォント色に戻ります。
mypdf.addRawContent("0 0 0 rg\n");