Próbuję wygenerować raport za pomocą DynamicJasper, ale pojawia się następujący błąd:
net.sf.jasperreports.engine.util.JRFontNotFoundException:
Font 'Arial' is not available to the JVM.
msttcorefonts jest zainstalowany, ale wydaje mi się, że JVM nie używa z niego żadnych czcionek.
Używam Ubuntu 10.04.
Jak mogę to naprawić?
Odpowiedzi:
Próbowałem zainstalować mscorefonts, ale pakiet był zainstalowany i aktualny.
sudo apt-get update sudo apt-get install ttf-mscorefonts-installer
Próbowałem wyszukać czcionkę w systemie plików, używając:
ls /usr/share/fonts/truetype/msttcorefonts/
Ten folder miał właśnie plik README z poprawnymi instrukcjami dotyczącymi instalacji.
Do tego potrzebne jest połączenie internetowe:
sudo apt-get install --reinstall ttf-mscorefonts-installer
Ponownie zainstalowałem
ttf-mscorefonts-installer
(jak pokazano powyżej, upewniając się, że akceptujesz umowę EULA!) I problem został rozwiązany.źródło
Raporty Jasper próbuje pomóc Ci w opracowaniu raportu, stwierdzając, że nie może poprawnie wyeksportować raportu, ponieważ nie może znaleźć czcionki zdefiniowanej w
TextField
lubStaticText
<font fontName="Arial"/>
Tak, możesz to wyłączyć , ustawiając wartość true dla funkcji net.sf.jasperreports.awt.ignore.missing.font, ale wystąpią niespójności w eksporcie .
Tak, możesz zainstalować czcionkę jako czcionkę systemową JVM (ale musisz to zrobić na każdym używanym komputerze, który może generować raport i nadal możesz mieć problemy z kodowaniem ).
Właściwy sposób!
Użyj rozszerzeń czcionek ! Jeśli chcesz tworzyć własne (patrz link poniżej), Jasper raporty dystrybuuje również domyślny słoik font-extension (
jasperreports-fonts-x.x.x.jar
), która wspiera fontNameDejaVu Sans
,DejaVu Serif
iDejaVu Sans Mono
<font fontName="DejaVu Sans"/>
Z przewodnika JasperReport Ultimate:
Linki w StackOverflow na temat prawidłowego renderowania czcionek w formacie PDF
Lista kontrolna dotycząca prawidłowego renderowania czcionki w formacie PDF
Generuj rozszerzenia czcionek za pomocą JasperSoft Studio
Generuj rozszerzenia czcionek za pomocą iReport
źródło
Używam IReport do zainstalowania czcionki:
Następnie wybierz czcionkę i kliknij
dodaj ten jar, a także spring.jar * do ścieżki kompilacji.
* skopiuj plik spring.jar z Jaspersoft \ iReport-3.7.0 \ ireport \ modules \ ext
źródło
sudo apt-get install msttcorefonts
działa (w naszym środowisku programistycznym Ubuntu), ale nie jest zbyt dobrym rozwiązaniem.Zamiast tego, w oparciu o tę wskazówkę , dołączyliśmy czcionki do naszej aplikacji . Ich plik JAR zawiera następujące czcionki,
Bezpośredni link do pobrania jar: Maven ver 1.0. DynamicFonts
źródło
Dla CentOS:
wget msttcorefonts
Następnie:
tar -zxvf msttcorefonts.tar.gz cp msttcorefonts/*.ttf /usr/share/fonts/TTF/ fc-cache -fv
W końcu zrestartuj JVM.
źródło
Istnieją trzy metody uniknięcia takiego problemu.
Metoda 1: przez ustawienie ignorowania brakującej właściwości czcionki.
JRProperties.setProperty("net.sf.jasperreports.awt.ignore.missing.font", "true");
lub możesz ustawić tę właściwość, wprowadzając następujący wiersz do pliku .jrxml.
<property name="net.sf.jasperreports.awt.ignore.missing.font" value="true"/>
Metoda 2: ustawiając domyślną właściwość czcionki.
JRProperties.setProperty("net.sf.jasperreports.default.font.name", "Sans Serif");
lub możesz ustawić tę właściwość, wprowadzając następujący wiersz do pliku .jrxml.
<property name="net.sf.jasperreports.default.font.name" value="Sans Serif"/>
Metoda 3: dodając brakującą właściwość czcionki.
Najpierw zainstaluj brakujące czcionki w IReport, wybierając „Narzędzia >> Opcje >> Czcionki >> Zainstaluj czcionkę”, a następnie wybierz całą czcionkę i wyeksportuj ją, klikając „Eksportuj jako rozszerzenie” z rozszerzeniem .jar.
Możesz użyć tego jar dla Jasperreports-font.XXXjar, który będzie obecny w twojej bibliotece projektu lub ścieżce klas.
źródło
Rozwiązałem to, wybierając tylko „SansSerif” lub „Serif”, a nie „Arial” lub „Times New Roman”.
źródło
Jeśli używasz mavena w swoim projekcie, możesz po prostu dodać zależność jasper-fonts do pom.xml:
<dependency> <groupId>net.sf.jasperreports</groupId> <artifactId>jasperreports-fonts</artifactId> <version>6.8.1</version> </dependency>
Zainstalowanie brakującej czcionki w systemie może być działającym rozwiązaniem, ale nie dla mnie, nie chciałem instalować brakujących czcionek po każdym wdrożeniu na nowym serwerze, zamiast tego zdecydowałem się osadzić czcionkę w aplikacji.
Pozdrowienia.
źródło
może tworzyć własne czcionki przez iReport i konwertować jak pliki jars
źródło
Spróbuj dodać linię
net.sf.jasperreports.awt.ignore.missing.font = true
do pliku jasperreports.properties.
Jasper przestaje znajdować jedną czcionkę
źródło
Możesz to zrobić, instalując czcionki, czyli wszędzie tam, gdzie chcesz uruchomić tę konkretną aplikację. Najprostszym sposobem jest po prostu dodanie tej linii bl do pliku jrxml:
<property name="net.sf.jasperreports.awt.ignore.missing.font" value="true"/>
Mam nadzieję, że to pomoże.
źródło
Dla Debiana
Dodaj
non-free contrib
do deb i deb-src w /etc/apt/sources.list, czyli:
deb http://ftp.debian.org/debian/ squeeze main non-free contrib deb-src http://ftp.debian.org/debian/ squeeze main non-free contrib
Następnie
apt-get update apt-get install msttcorefonts
Oczywiście musisz ponownie uruchomić Jasperserver. to znaczy:
Zmień wersję / ścieżkę.
źródło
Napotkałem problem z moją aplikacją internetową opartą na Spring 3 i wdrożoną na Weblogic 10.3 na Oracle Linux 6. Rozwiązanie wymienione w linku nie działa dla mnie.
Musiałem wykonać następujące kroki - 1. Skopiuj pliki czcionek Arial * .ttf do katalogu JROCKIT_JAVA_HOME / jre / lib / fonts 2. Wprowadź wpisy czcionek w fontconfig.properties.src 3. Uruchom ponownie klaster z konsoli Weblogic
filename.Arial=Arial.ttf filename.Arial_Bold=Arial_Bold.ttf filename.Arial_Italic=Arial_Italic.ttf filename.Arial_Bold_Italic=Arial_Bold_Italic.ttf
źródło
Utwórz raport Jasper w wielu językach (Unicode)
1) Zainstaluj czcionkę w ireport Desginer
2) Utwórz rozszerzenie czcionki (użyjemy go w ścieżce klas aplikacji)
3) zainstaluj czcionkę w systemie operacyjnym (opcjonalnie)
4) wklej cały .ttf czcionki do katalogu jre-> lib-> fonts (w przeciwnym razie aplikacja internetowa wyświetli błąd czcionki nie jest dostępna dla JVM)
źródło
Właściwie naprawiłem ten problem w bardzo prosty sposób
home path
, jak/root
.fonts
all your font files
do.fonts
, możesz skopiować czcionkę,C:\windows\fonts
jeśli używasz systemu Windows.sudo apt-get install fontconfig
fc-cache –fv
odbudować pamięci podręczne czcionek.źródło
Rozwiązanie w 2 krokach (jeśli używasz centOS)
Pobierz pakiet rpm podstawowych czcionek firmy Microsoft.
[root@WEBSVR~/]# wget http://www.itzgeek.com/msttcore-fonts-2.0-3.noarch.rpm
Zainstaluj pakiet rpm.
[root@WEBSVR~/]# rpm -Uvh msttcore-fonts-2.0-3.noarch.rpm
źródło
Skopiuj swoje czcionki do następującego katalogu JDK_HOME \ jre \ lib \ fonts
źródło
Hej Masz problemy z przeglądaniem dokumentów utworzonych w systemie Windows?
Możesz wypróbować dobre rozwiązanie łatwe:
Po tym muszę ponownie uruchomić mój system CentOS6.
Źródło: http://mscorefonts2.sourceforge.net/
źródło