在書我看到例如:字體之間有什麼區別是embedd字體和nonembedd字體?
BaseFont bf = BaseFont.createFont("KozMinPro-Regular", "Identity-V", BaseFont.NOT_EMBEDDED);
Font font = new Font(bf, 20);
VerticalText vt = new VerticalText(writer.getDirectContent()); vt.setVerticalLayout(390, 570, 540, 12, 30);
font = new Font(bf, 20);
vt.addText(new Phrase(convertCIDs("a"), font));
vt.go();
public String convertCIDs(String text) {
char cid[] = text.toCharArray();
for (int k = 0; k < cid.length; ++k) {
char c = cid[k];
if (c == '\n')
cid[k] = '\uff00';
else
cid[k] = (char) (c - ' ' + 8720);
}
return new String(cid);
}
當我更改爲:
BaseFont bf = BaseFont.createFont("/../KozMinProRegular.otf",BaseFont.IDENTITY_V, BaseFont.EMBEDDED);
結果: 'a' 沒有順時針旋轉90度。
我的問題是:「如何以字體(.otf)的旋轉模式顯示文本嵌入」作爲鏈接http://www.unicode.org/Public/vertical/revision-13/VerticalOrientation-13.html。我發現很多主題,但沒有任何解決方案。 – 2014-12-07 17:11:01
我更新了這個例子。解決方案的關鍵是您需要使用正確的UNICODE值。 'convertCIDs'方法將水平西文字母的Unicode值轉換爲旋轉90度的相同字母的Unicode值。我不知道這是否適用於其他語言。爲什麼你自己如此困難?爲什麼不使用正常字母並旋轉完整的'String'?你想達到什麼目的?也許你正在用一種非常困難的方式來做一些非常簡單的事情。 – 2014-12-07 17:17:14
在日語中,字母以旋轉模式(以字體顯示)與普通字母(順時針旋轉90度)不同。例如:unicode U + 3300中的char作爲鏈接http://www.unicode.org/reports/tr50/。因爲我想通過cmap將水平模式中的字符映射到垂直模式。 – 2014-12-07 17:26:41