2

フォント ファミリ、色、サイズ、スタイル (太字、斜体、下線) などのカスタム フォント スタイルでレポートを生成するアプリケーションがあります。そして、私はWindowsシステムのすべてのフォントファミリを使用しています.

.jrxml ファイルでパラメーターを使用しようとしています。このような :
<parameter name="fontFamily" class="java.awt.Font"/>

そしてテキストで:

<staticText>
    <reportElement uuid="3c9d8704-dbae-49ed-9787-477ff5b8742f" x="4" y="4" width="241" height="15" forecolor="#FFFFFF"/>
        <textElement verticalAlignment="Middle">
             <font fontName="$P{fontFamily}" size="11" isBold="true"/>
        </textElement>

        <text><![CDATA[Hasil Pemeriksaan PROCEDURE]]></text>
</staticText>

iReportでプレビューすると、エラーが記録されます:

Error filling print... Font '$P{fontFamily}' is not available to the JVM. See the Javadoc for more details. 
java.lang.NoSuchMethodException: java.awt.Font.<init>(java.lang.String)      
at java.lang.Class.getConstructor0(Class.java:2730)      
at java.lang.Class.getConstructor(Class.java:1676)      
at com.jaspersoft.ireport.designer.compiler.prompt.Prompter$1.run(Prompter.java:278)      
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:241)      
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)      
at java.awt.EventQueue.access$200(EventQueue.java:103)      
at java.awt.EventQueue$3.run(EventQueue.java:688)      
at java.awt.EventQueue$3.run(EventQueue.java:686)      
at java.security.AccessController.doPrivileged(Native Method)      
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)      
at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)      
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:104)      
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)      
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)      
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)      
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)      
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)      
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91) 

私を助けてください、前にありがとう:)

4

1 に答える 1

1

次のプロパティを設定します

Markup : html
Text field expression : "<font face='" + $P{fontName} + "'>" + $F{field1} + "</font>"

$P{fontName} の値をMonospacedSansSerifに設定すると、違いがわかります。

于 2013-03-28T02:49:45.510 に答える