program story

Jasper 보고서가있는 JVM에서 글꼴을 사용할 수 없습니다.

inputbox 2020. 10. 5. 07:54
반응형

Jasper 보고서가있는 JVM에서 글꼴을 사용할 수 없습니다.


DynamicJasper로 보고서를 생성하려고하는데 다음과 같은 오류가 발생합니다.

net.sf.jasperreports.engine.util.JRFontNotFoundException:  
                                 Font 'Arial' is not available to the JVM.   

msttcorefonts 가 설치되어 있지만 JVM이 글꼴을 사용하지 않는 것 같습니다.

Ubuntu 10.04를 사용하고 있습니다.

이 문제를 어떻게 해결할 수 있습니까?


mscorefonts 설치를 시도했지만 패키지가 설치되었으며 최신 상태입니다.

sudo apt-get update
sudo apt-get install ttf-mscorefonts-installer

다음과 같이 파일 시스템에서 글꼴을 검색해 보았습니다.

ls /usr/share/fonts/truetype/msttcorefonts/

이 폴더에는 설치 방법에 대한 올바른 지침과 함께 README가 있습니다.

cat /usr/share/fonts/truetype/msttcorefonts/README

이를 위해서는 인터넷 연결이 필요합니다.

sudo apt-get install --reinstall ttf-mscorefonts-installer

다시 설치 ttf-mscorefonts-installer했고 (위에 표시된대로 EULA에 동의해야합니다!) 문제가 해결되었습니다.


JasperReports 는 보고서 템플릿 내에서 사용 된 글꼴이 시스템 글꼴 또는 JR 글꼴 확장에서 오는 글꼴로 JVM에서 사용할 수없는 경우 JRFontNotFoundException 을 발생시킵니다. 이를 통해 글꼴 메트릭 불일치로 인한 모든 문제를 방지하고 불일치에 대한 조기 경고를받습니다.

Jasper 보고서는 또는에 정의 된 글꼴을 찾을 수 없기 때문에 보고서를 올바르게 내보낼 수 없다고 명시하여 보고서 개발 돕고 있습니다 .TextFieldStaticText

<font fontName="Arial"/>

예, net.sf.jasperreports.awt.ignore.missing.font 를 true 로 설정 하여 이를 비활성화 할 수 있지만 내보내기 불일치가 발생 합니다.

, JVM 시스템 글꼴로 글꼴을 설치할 수 있습니다 (하지만 보고서를 생성하는 데 사용되는 모든 PC에서 설치해야하며 인코딩 문제 가있을 수 있습니다 ).

올바른 방법!

글꼴 확장 사용 ! (아래 링크 참조) 자신을 만들려면 경우, 재 스퍼 보고서는 또한 기본 글꼴 확장 항아리 (배포 jasperreports-fonts-x.x.x.jar)이 지원하는 글꼴 이름 DejaVu Sans, DejaVu SerifDejaVu Sans Mono

<font fontName="DejaVu Sans"/>

JasperReport Ultimate 가이드에서 :

보고서가 런타임에 실행될 때 응용 프로그램에서 글꼴을 사용할 수 있도록하는 유일한 방법이므로 글꼴 확장에서 파생 된 글꼴 만 사용하는 것이 좋습니다. 시스템 글꼴을 사용하면 해당 글꼴이 설치되지 않은 새 시스템에 배포 할 때 보고서가 제대로 작동하지 않을 위험이 항상 발생합니다.

PDF에서 글꼴을 올바르게 렌더링하는 방법에 대한 StackOverflow의 링크

PDF에서 글꼴을 올바르게 렌더링하는 방법에 대한 체크리스트

JasperSoft Studio로 글꼴 확장 생성

iReport로 글꼴 확장 생성


IReport를 사용하여 글꼴을 설치합니다.

도구-> 옵션-> 글꼴-> 글꼴 설치 클릭

그런 다음 글꼴을 선택하고

-> 확장자로 내보내기 및 이름 myfont.jar 입력

이 jar와 spring.jar * 를 빌드 경로에 추가하십시오.

* Jaspersoft \ iReport-3.7.0 \ ireport \ modules \ ext에서 spring.jar 복사


CentOS의 경우 :

wget msttcorefonts

그때:

tar -zxvf msttcorefonts.tar.gz
cp msttcorefonts/*.ttf  /usr/share/fonts/TTF/
fc-cache -fv 

결국 JVM을 다시 시작하십시오.


sudo apt-get install msttcorefonts (우분투 개발 환경에서) 작동하지만 그다지 좋은 솔루션은 아닙니다.

대신 이 팁을 기반으로 애플리케이션에 글꼴을 번들로 제공했습니다 . JAR 파일은 다음 글꼴을 번들로 제공합니다.

  • 굴림
  • 타임즈 뉴로 만
  • 택배 신규
  • Comic Sans MS
  • 그루지야
  • Verdana
  • 고정 폭

jar 다운로드를위한 직접 링크 : Maven 버전 1.0. DynamicFonts


이러한 문제를 피할 수있는 세 가지 방법이 있습니다.

방법 1 : 누락 된 글꼴 속성 무시를 설정합니다.

JRProperties.setProperty("net.sf.jasperreports.awt.ignore.missing.font", "true");

또는 .jrxml 파일에 다음 줄을 입력하여이 속성을 설정할 수 있습니다.

<property name="net.sf.jasperreports.awt.ignore.missing.font" value="true"/>

방법 2 : 기본 글꼴 속성을 설정합니다.

JRProperties.setProperty("net.sf.jasperreports.default.font.name", "Sans Serif");

또는 .jrxml 파일에 다음 줄을 입력하여이 속성을 설정할 수 있습니다.

<property name="net.sf.jasperreports.default.font.name" value="Sans Serif"/>

방법 3 : 누락 된 글꼴 속성을 추가합니다.

Firstly install missing fonts in IReport by selecting " Tools >> Options >> Fonts >> Install Font " then select the all font and Export this By clicking on "Export as Extension" with .jar Extension.

You can use this jar for Jasperreports-font.X.X.X.jar which will be present in your project library or classpath.


I solved this by choosing 'SansSerif' or 'Serif' only and not 'Arial' or 'Times New Roman'.


can make your custom fonts via iReport and converting like jars files


Try adding the line

net.sf.jasperreports.awt.ignore.missing.font=true

to your jasperreports.properties file.

Jasper stops finding one font


You can do it by installing fonts, that means everywhere you want to run that particular application. Simplest way is just add this bl line to your jrxml file:

 <property name="net.sf.jasperreports.awt.ignore.missing.font" value="true"/>

Hope it helps.


I faced the issue with my web application based on Spring 3 and deployed on Weblogic 10.3 on Oracle Linux 6. The solution mentioned at the link did not work for me.

I had to take the following steps - 1. Copy the Arial*.ttf font files to JROCKIT_JAVA_HOME/jre/lib/fonts directory 2. Make entries of the fonts in fontconfig.properties.src 3. Restart the cluster from Weblogic console

filename.Arial=Arial.ttf
filename.Arial_Bold=Arial_Bold.ttf
filename.Arial_Italic=Arial_Italic.ttf
filename.Arial_Bold_Italic=Arial_Bold_Italic.ttf

For Debian

add

non-free contrib

to deb and deb-src in /etc/apt/sources.list ie:

deb http://ftp.debian.org/debian/ squeeze main non-free contrib
deb-src http://ftp.debian.org/debian/ squeeze main non-free contrib

Then

apt-get update
apt-get install msttcorefonts

Of course you'll need to restart jasperserver. ie:

/opt/jasperreports-server-cp-4.5.0/ctlscript.sh restart

Change for your version / path.


Create jasper report in multiple languages(Unicode)

1)Install font in ireport desginer

2)create extension of font(we will use it in applications classpath)

3)install font on os(optional)

4)paste all .ttf of font in jre->lib->fonts directory (otherwise web application will throw error font is not available to JVM)


If you are using maven in your project, you can just add the jasper-fonts dependency to pom.xml:

<dependency>
    <groupId>net.sf.jasperreports</groupId>
    <artifactId>jasperreports-fonts</artifactId>
    <version>6.8.1</version>
</dependency>

Installing the missing font on the system may be a working solution but not for me, I didn't want to have to install the missing fonts after each deployment in a new server, instead I opted for embedding the font with the application.

Regards.


Actually I fixed this issue in a very simple way

  1. go to your home path, like /root
  2. create a folder named .fonts
  3. copy your all your font files to .fonts, you can copy the font from C:\windows\fonts if you use windows.
  4. sudo apt-get install fontconfig
  5. fc-cache –fv to rebuid fonts caches.

Solution in 2 steps (if you are using centOS)

  1. Download the Microsoft core fonts rpm package.

    [root@WEBSVR~/]# wget http://www.itzgeek.com/msttcore-fonts-2.0-3.noarch.rpm
    
  2. Install rpm package.

    [root@WEBSVR~/]# rpm -Uvh msttcore-fonts-2.0-3.noarch.rpm
    

Copy your Fonts on the following directory JDK_HOME\jre\lib\fonts


Hey Having trouble viewing documents produced on Windows?

You can try a fine solution easy:

yum install curl cabextract xorg-x11-font-utils fontconfig

rpm -i https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm

After this I need reboot my system CentOS6.

Source: http://mscorefonts2.sourceforge.net/

참고URL : https://stackoverflow.com/questions/3811908/font-is-not-available-to-the-jvm-with-jasper-reports

반응형