1

XSL-FO (Apache FOP) を使用して PDF を生成する場合、Windows 7 の c:\windows\fonts* のフォントを使用することはできません。

「helvetica neue」フォントを OTF 形式でインストールしました。

https://xmlgraphics.apache.org/fop/trunk/fonts.htmlによると

「システム フォントのサポートは、フォント メトリック情報について Java AWT サブシステムに依存しています。オペレーティング システムの登録を通じて、AWT サブシステムは、システムで使用可能なフォントと、それぞれのフォント メトリックを認識します。

システム フォント (上記の表を参照) をサポートするレンダラーを使用していて、フォントが不足している場合は、オペレーティング システムにインストールするだけで、これらのレンダラーで使用できるようになります。これは、カスタム フォントのみをサポートする PDF や PostScript などの出力形式には当てはまらないことに注意してください。」

私の理解が正しければ、レンダリングが PDF の場合 (つまり、出力が pdf ??)、AWT/OS を介してフォントにアクセスできないため、そのようなテキストを生成することはできません。 Windows 7 フォントを使用した PDF のフォント

------------------------------更新、これは ttf フォントでのみ機能し、otf では機能しません。otf フォントを動作させる方法がわかりません。

-----------------------------更新: 20150402:

FOP 1.1 の使用:

この特定の無料のヘルベチカ ノイエ フォントは、 http ://www.ephifonts.com/free-helvetica-font-helvetica-neue.html からダウンロードしました。

fop.xconf を使用するように fop を構成しましたが、ttf ファイルの処理中にエラーが発生し、fontforge でフォント ttf ファイルを編集する方法がわかりません。

fop -c fop.xconf -xml xml.xml -xsl カバーシート.xsl -pdf 出力.pdf

Apr 2, 2015 6:53:55 PM org.apache.fop.fonts.truetype.TTFFile readCMAP
SEVERE: Unsupported TrueType font: No Unicode or Symbol cmap table not    present. Aborting
Apr 2, 2015 6:53:55 PM org.apache.fop.events.LoggingEventListener    processEvent
WARNING: Unable to load font file: file:/C:/windows/FONTS/HelveticaNeue.ttf. Reason: java.io.IOException: TrueType font is not supported: file:/C:/windows/FONTS/HelveticaNeue.ttf

Apr 2, 2015 6:53:55 PM org.apache.fop.fonts.truetype.TTFFile getTTCnames
INFO: This is a TrueType collection file with 4 fonts

ありがとう

4

1 に答える 1

0

(予備開示: 私は FOP 開発者です)

XSL-FO (Apache FOP) を使用して PDF を生成する場合、Windows 7 の c:\windows\fonts* のフォントを使用することはできません。

FOP が認識して使用するには、フォントを構成する必要がありますが、構成は非常に簡単です。FOP に、特定のディレクトリ内のすべてのフォント ファイルを (再帰的にも) 調べるように指示したり、単純に次の場所でフォントを探すように指示したりできます「いつもの」場所。

この構成フラグメントは、質問にリンクされている同じフォント構成ページから取得されます。

<renderers>
  <renderer mime="application/pdf">
     <fonts>
        <!-- register all the fonts found in a directory -->
        <directory>C:\MyFonts1</directory>

        <!-- register all the fonts found in a directory and all of its sub directories (use with care) -->
        <directory recursive="true">C:\MyFonts2</directory>

        <!-- automatically detect operating system installed fonts -->
        <auto-detect/>
     </fonts>
  </renderer>
</renderers>

フォント構成に関する追加の詳細については、この回答を参照してください。

更新、これは ttf フォントでのみ機能し、otf では機能しません。otf フォントを動作させる方法がわかりません。

バージョン 2.0 で OpenType フォントのサポートが追加されました。

于 2015-04-01T20:31:00.597 に答える