Domanda

Uso BIRT sin dai primi giorni e ho ancora enigmi sull'emettitore PDF.

Racconto : Posso configurare fontsConfig.xml per caricare i caratteri dal percorso relativo o dai vasetti?

Storia lunga: Stiamo usando sia FOP che BIRT per generare PDF nella nostra applicazione web. Sarebbe bello condividere i caratteri tra le librerie. Sfortunatamente, non riesco a trovare un modo per farlo con BIRT 2.3.1

La radice del male è fontsConfig.xml Se lo configuro come mostrato di seguito, funziona bene:

<font-paths>
<path path="fonts"/>
</font-paths>

Ma path non mi permette di usare né percorsi relativi né classpath (o non riesco a trovare un modo appropriato come configurarlo). Né config1 né config2 funzionano.

config1:

<font-paths>
<path path="../fonts"/>
</font-paths>

config2:

<font-paths>
<path path="classpath:fonts"/>
</font-paths>

Eventuali pensieri saranno apprezzati.

È stato utile?

Soluzione

Con alcune versioni BIRT, puoi utilizzare una proprietà di sistema "birt.font.dirs". Questo sostituisce fontsConfig.xml.

Bene, una volta ha funzionato, ma ovviamente è stato rimosso dal codice sorgente BIRT in seguito.

Ora puoi chiamare qualcosa del genere

EngineConfig engineConfig = new EngineConfig();
URL fontsConfigurationURL = new URL("file:///path/to/my/fontsConfig.xml");
engineConfig.setFontConfig(fontsConfigurationURL);

Platform.startup(engineConfig);

Ciò consente di fornire a BIRT una versione personalizzata di fontsConfig.xml senza cercare nei JAR.

Testato con BIRT 4.3.0.

Altri suggerimenti

C'è un modo per avere caratteri su un percorso relativo da usare in Birt.

Quello che devi fare è copiare i caratteri in una posizione nella tua Applicazione Web. Il mio era in: C: \\ src \ Main \ webapp \ Rapporti

Ora nell'applicazione, utilizzare il comando seguente per registrare i caratteri dalla posizione sopra menzionata.

FontFactory.registerDirectory( scContext.getRealPath("/Reports") );

Questo registrerà il carattere.

Testato da Birt 4.3 a Spring MVC

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top