4

PDFドキュメントを画像にレンダリングするJavaアプリケーションを作成していますが、Windowsで実行すると正常に動作します。しかし、LinuxでPDFをレンダリングすると、一部の文字の右側にいくつかのピクセルが欠落しているように、標準フォントが少し文字化けしているように見えます。

私はOpenJDK6を使用したUbuntu9.04の新規インストールでのみテストしましたが、Linuxで以前に同様の問題が発生したことは間違いありません。また、SwingLabsPDFRendererやIcePDFDemoAppletなどの他のJavaPDFアプリケーションでPDFを開こうとしましたが、同じ問題が発生しました。Windowsでは、それらはすべてドキュメントを適切にレンダリングします。また、同じUbuntuマシンで、デフォルトのPDFビューアであるevinceを使用してドキュメントを開きました。Evinceはフォントの問題なしでドキュメントをレンダリングしたので、これは一般的なJava+Linuxの問題であると確信しています。

比較のために:
この画像はWindowsでレンダリングされました。
この画像はLinuxでレンダリングされました。いくつかの文字化けした文字を赤いリングでマークしました。
これもLinuxでレンダリングされました。標準フォントのみが影響を受けるようです。

どんな助けでも大歓迎です。

4

10 に答える 10

6

OpenJDKは、著作権で保護されているフォントを出力する必要があります。SunのJavaをインストールすると、フォントが改善されます。

于 2009-09-01T05:54:14.510 に答える
3

LinuxにOpenJDKをインストールしましたが、すべてのアプリで非常に悪いフォントが使用されていました...フォント、アンチエイリアスの変更、Lucidaフォントのインストールなどを何度も試みた後、問題がにあることがわかりました/etc/fonts/conf.d/35-freefont.conf

そのリンクを削除して実行するfc-cache -fと、すべての新しいJavaアプリのフォントが大幅に向上しました。

私の場合、freefont configは、はるかに優れたフォントの代わりにそれを使用するようにJavaに指示していました。同様の問題が発生した場合は、実行sudo mv /etc/fonts/conf.d /etc/fonts/conf.d.offしてfc-cache -fテストしてください...

それが機能する場合は、デフォルトのフォント置換も正しくないため、そのディレクトリを復元して各ファイルをテストする必要があります。

それが同じままである場合は、おそらく別の問題があります(ディレクトリを復元することを忘れないでくださいconf.d

アップデート

Ubuntu 12.04でも同様の問題が発生し、すべてのJavaフォントが太字になっています。削除/etc/fonts/conf.d/65-nonlatin.confすると問題が修正されました。

于 2012-03-01T02:47:01.687 に答える
1

フォントヒンティングが悪くなった可能性があります。使用しているLinuxOSのフォントヒンティング設定を確認してください。

フォントの場合もあります。別のフォントを指定してみてください。あなたが使用しているものは、Linux上で単にひどくレンダリングされるかもしれません-いくつかはただそうします。パラティーノは私が特に悪いと思ったものです。

于 2009-09-01T05:57:49.680 に答える
1

pdffontsを使用して、問題の分析に役立てることができます。少なくとも、PDFファイルで使用されているフォントの名前、タイプ、埋め込まれている場合などがわかります。フォントが埋め込まれていない場合は、にインストールしてみてください。 Linuxマシン。

于 2009-09-01T05:59:22.173 に答える
1

PDFビューアが提供する必要があるため、埋め込む必要のない8つの標準フォントファミリがあります。それ以外の場合は、それらが置き換えられます。PDFは他のPDFJavaオープンソースビューア(多価、JPedal)ではどのように見えますか?

于 2009-09-02T07:09:52.523 に答える
1

openJDKを使用して、Sun/Oracleのフォントを使用できます。

最初にopenDJK(ランタイムパッケージと開発パッケージの両方)をインストールします

次に、Sun/Oracleのランタイムのみをインストールします。これによりフォントがインストールされますが、引き続きopenJDKのJavaを使用してすべてを実行します。

于 2010-09-20T23:20:14.983 に答える
1

OpenJDKの最新バージョンをインストールします。または、ヒントを有効にしてFreetypeを再コンパイルします。ヒントに関するAppleの特許は失効しています。

于 2012-06-22T04:21:03.223 に答える
0

すべてのWindowsフォントをコピーして、Linux環境に配置してみてください。

于 2009-09-01T06:23:05.807 に答える
0

フォントはPDFに埋め込まれていますか?

于 2009-09-01T08:45:15.553 に答える
0

私はそれをテストしていませんが、inductiveautomation.comのこのフォーラム投稿によると、フォントをインストールすることで修正できます。

sudo apt-get install msttcorefonts

Javaフォントのプロパティでarialのlucidasansを変更します。

sudo nano /usr/lib/jvm/java-6-sun/jre/lib/fontconfig.properties
于 2013-02-25T16:16:28.887 に答える