2

JavaアプリケーションでPDFファイルに埋め込まれたフォントのいくつかを使用しようとしています。どうやら、JavaはType1とTrueTypeフォントをロードすることができます。いくつかのウェブサイトによると、PDFのType1cフォントは基本的にCFFまたはType2フォントです。Java 7の新機能は、CFFフォントをロードすることですが、これによるFont.createFont()は機能しません。

それで、私はどこで間違っているのですか?Type1cフォントは本当にCFF/OpenTypeフォントですか?変換は必要ですか?

4

3 に答える 3

2

フォントはサブセット化されていますか? (この場合、フォント全体ではなく一部の文字のみが含まれます)。

一般に、PDF に埋め込まれた CFF フォントを一般的に使用できるようにするには、多くの変換作業が必要になる場合があります。フォントに関するさまざまな問題に関する多くの投稿を見てきました。

Google から興味深い Java フォント ツール (http://code.google.com/p/sfntly/) があり、フォント操作を検討している場合は fontforge が役立ちます。

于 2012-11-22T12:05:44.137 に答える
1

恐れながら、どのような戦いをしようとしているのかを正確に把握する必要があります。フォントに関する Web サイトを信じないでください。PDF 仕様を読んでください: http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/PDF32000_2008.pdf

具体的には、チャプター 9.6 - Simple Fonts および 9.7 - Composite fonts を探しています。

要約すると、PDF ファイル内のフォントにはいくつかの種類があります。 - Type 0 - Type 1 - Type 3 - TrueType

Type 1 と TrueType は最も単純なものであり、PDF ファイルでそれらに遭遇する可能性が非常に高くなります。タイプ 3 は、グラフィックスを使用して文字を描画できるフォント タイプです。あまり一般的ではありません。

Type 0 はより複雑なフォント タイプで、当初は大きな文字セット (日本語/中国語を考えてください) を使用できるように考案されましたが、現在では多くのプロのデザインおよびレイアウト アプリケーションによって日常的に生成されています。この Type 0 フォント タイプには 2 つのサブタイプがあります。

いずれの場合も、システムに存在する「実際の」フォントと、PDF ファイルに埋め込まれた同じフォントとの間には大きな違いがあります。

まず、使用するフォントを含む PDF ファイルを確認します。callas (http://www.callassoftware.com/callas/doku.php/en:download) の pdfToolbox や Enfocus (http://www.enfocus.com/en/products/browser) の Browser などのツールを使用します。 . これらのツールの両方を使用すると、実際のページ記述コードやフォント ディクショナリを確認するなど、PDF ファイルの下位レベルの構造を調べることができます。pdfToolbox は、実際の形状やそれらの形状を描画するために使用される指示を確認するなど、PDF ファイル内のフォントを詳しく調べるのに特に優れています。

于 2012-11-23T23:06:06.207 に答える
0

FontVerter は、私が少し前に書いたオープンソースの Java ライブラリで、PDF からの裸の CFF* および Type0/コンポジット フォントを OTF/TTF および WOFF1/2 に変換できます。また、ブラウザーで正しく機能しない OTF/TTF フォントの修正と正規化を試みることもできます。PDF に埋め込まれたオープン タイプ フォントには、テーブルが見つからないなどのさまざまな問題があり、Chrome で正しくレンダリングされないことがよくありました。

FontVerter github

(*裸の CFF = type1c だと思いますか?、少し時間が経ち、どの型がどれか忘れてしまいました)

于 2016-09-20T03:53:58.323 に答える