我有一个用pdf绘制的文字,比如500 €/hour
。我正在使用PdfBox-Android库。
我试图按如下方式写上面的字符串,
pageContentStream.drawString("500 " + Html.fromHtml(getString(R.string.euro)).toString() + "/hour");
其中euro
在strings.xml
中定义为
<string name="euro">(€)</string>
<string name="pound">(£)</string>
上面的代码PdfBox-Android
正在写一些乱码。
我找到了一个使用pdfbox编写€
的解决方案here,这是完美的。
我的问题是如何一次性写出€
符号旁边的文字...?
我是否需要首先编写€
,然后移动文本旁边的文本然后写下剩余的文本?我认为这不是一个correct
解决方案。
答案 0 :(得分:1)
您需要传递货币符号的HTML代码
Html.fromHtml((String) currency_symbol).toString()
Html.fromHtml((String) "€").toString() //for euro
Html.fromHtml((String) "£").toString() //for pound
答案 1 :(得分:1)
通过引用this我设法实现我需要的东西。请参阅以下代码段。
contentStream.beginText();
/*x will act as placeholder here*/
byte[] commands = "(500 x/year**) Tj ".getBytes();
/* commands[index_of_x] = (byte)128, where 128 is decimal value of octal
* 200. (char code for '€' in WinAnsiEncoding).
* you may want to refer annex D.2, Latin Character Set and Encodings of
* PDF specification ISO 32000-1
*/
commands[5] = (byte) 128;
contentStream.appendRawCommands(commands);
contentStream.endText();
contentStream.close();
PDF规范ISO 32000-1