3

iText v5ColdFusion 9中使用并希望包含该CopyRight符号。文档和书籍说要传递unicode字符串,例如\u00a9. 我得到的是那个字符串,而不是符号。这是我的测试用例:

// Ask iText what version it is. This include the Registered and Copyright symbols so this
// font can obviously display them
vers = variables.javaLoader.create("com.itextpdf.text.Version").getVersion();

// Make a new paragraph and add the version number to the document
vPara = variables.javaLoader.create("com.itextpdf.text.Paragraph").init(vers);
myDoc1.add(vPara);

// Make a new string including the CopyRight symbol as per the iText docs and book
str = CreateObject("java","java.lang.String").init('Acme Products\u00a9');

// Make another paragraph and add the string to the document 
para = variables.javaLoader.create("com.itextpdf.text.Paragraph").init(str);
myDoc1.add(para);

这是输出(从pdf复制):

iText® 5.4.1 ©2000-2012 1T3XT BVBA
Acme Products\u00a9 

请注意,已注册和版权符号正确显示在版本字符串中,以便字体可以显示它们。

我在想我在这里错过了一些非常基本的东西,但看不到它。我知道我真的不需要创建自己的java.lang.String,因为无论如何 CF 都是这样做的,但只是为了消除这种可能性,我走了那么远。

4

2 回答 2

2

@Pritesh 帕特尔

谢谢!就是这样。而且,对于 unicode 来说是完整的(因为我也想要商标):

str = "Trademark"  & chr( InputBaseN( '2122', 16 ) );
str = "Registered" & chr( InputBaseN( '00AE', 16 ) );
str = "Copyright"  & chr( InputBaseN( '00A9', 16 ) );

换句话说,CHR() 也处理 unicode。代码可在此处获得:http ://www.unicode.org/

默里

于 2013-07-01T11:02:29.913 回答
0

使用 chr(169) 代替 \u00a9。可能如下所示。

str = CreateObject("java","java.lang.String").init('Acme Products#chr(169)#');
于 2013-07-01T06:40:20.637 回答