web-dev-qa-db-ja.com

外部フォントをPDFファイルに埋め込む

acroreaderは1つのpdfファイル(WPMathB、WPMathA WPギリシャ語Helve、...)で不足しているフォントを表示しています。これは http://www.fontpalace。 com

ただし、ghostscriptコマンドは失敗しますが、不足しているフォントディレクトリ/home/user/WP_ttf_fontsを指しています。

 $ gs -o file-with-embedded-fonts.pdf -sDEVICE=pdfwrite -dEmbedAllFonts=true  -sFONTPATH="/home/user/WP_ttf_fonts" input-without-embedded-fonts.pdf
Page 35    
Can't find CID font "WPMathB".    
Attempting to substitute CID font /Adobe-Identity for /WPMathB, see doc/Use.htm#CIDFontSubstitution.    
Loading a TT font from 
/usr/share/ghostscript/9.10/Resource/CIDFSubst/DroidSansFallback.ttf to emulate a CID font Adobe-Identity   **** Warning: can't process font stream, loading font by the name.    
 ... Done.    
Can't find CMap Identity-UTF16-H building a CIDDecoding resource.     
Can't find CID font "WPMathB".    
Attempting to substitute CID font /Adobe-Identity for /WPMathB, see doc/Use.htm#CIDFontSubstitution.    
Loading a TT font from /usr/share/ghostscript/9.10/Resource/CIDFSubst/DroidSansFallback.ttf to emulate a CID font Adobe-Identity
**** Error reading a content stream.     
The page may be incomplete.    
   **** File did not complete the page properly and may be damaged.    
 ... Done.

これらのフォントを受け入れるようにghostscriptに指示する方法を教えてください。

1
Miro Iliaš

WPMathAなどはCorrel Word Perfectから提供されており、Correlではこれらのフォントをダウンロードできます(ただし、自己解凍型Zipアーカイブにライセンスは見つかりませんでした)。 * .exeを解凍しても問題なく機能するので、心配しないでください。 WP MathAフォントのFILE名はWphv06na.ttfであり、それほど厄介なものにはなりません。

例:

_Sudo chown $USER /usr/local/share/fonts/
cd /usr/local/share/fonts/
wget http://www.corel.com/akdlm/6763/downloads/WordPerfect/wpwin/9/wpfonts.exe
unzip wpfonts.exe
Sudo chown -R root /usr/local/share/fonts/
Sudo fc-cache
_

次のハードルは、PDFにはWPMathAがありますが、フォントキャッシュには_WP MathA_があります。

_fc-list | grep local.*MathA
/usr/local/share/fonts/Wphv06na.ttf: WP MathA:style=Normal
fc-list -v | grep -c WPMathA
0
_

あなたの使命は、WPMathAを_WP MathA_に関連付けるために必要なエイリアスを使用して、不足している構成ファイルを作成することです。その後、つまようじから空母を構築してリラックスできます。

_mkdir -p ~/.config/fontconfig/
echo '<?xml version="1.0"?>' > ~/.config/fontconfig/fonts.conf
xmlcopyeditor ~/.config/fontconfig/fonts.conf
_

インサート:

_<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- $XDG_CONFIG_HOME/fontconfig/fonts.conf for per-user font configuration -->
<fontconfig>
  <alias>
    <family>WPMathA</family>
    <prefer><family>WP MathA</family></prefer>
  </alias>
</fontconfig>
_

再度キャッシュを再構築することを忘れないでください。 root/Sudoは必要なかった。

_fc-cache
_

この時点で、acroreadはWPMathAの不足について不平を言うのをやめ、ghostscriptのバグジラのバグ687595には、8.60でfontconfigサポートが追加されたとのコメントがありますが、私は彼らが嘘をついたと思います。 PDF埋め込みフォントを使用して今でも作業しているはずのフォントを作成することを主張する場合は、ここで引用するghostscript bugzillaバグ692001を読むことができます。

コメント2 Ken Sharp 2011-02-28 11:44:42 PST

これを行うには2つの方法があります。

1)Arialという名前の本物のCIDFontを見つけてgs/Resource/CIDFontに配置し、Ghostscriptにディスクファイルと組み込みのファイルシステムを使用するように指示します。これは、-Iコマンドラインスイッチ(例:-I/gs/Resource)で行います。

2)代替としてTrueTypeフォントを使用します。これを行うには、gs/Resource/Init/cidfmapを編集してフォント(Arial)のエントリを追加し、代わりに使用するTrueTypeフォントと他のいくつかのパラメーターを指定する必要があります。次に、Ghostscritp [sic]に、指定したファイルを使用するように指示する必要があります。ここでも、上記の-Iスイッチを使用します。

Cidfmapファイルでこれを指定することにより、別の名前の既存のCIDフォントを代わりに使用することもできます。

/gs/doc/Use.htmにあるドキュメントを参照してください。

「CIDフォント」と「CIDフォント置換」を探します。

Kenが参照する_apt-get install ghostscript-doc_を取得するには、_file:///usr/share/doc/ghostscript-doc/Use.htm_を使用する必要があります。

更新するファイルは_/var/lib/ghostscript/fonts/cidfmap_です。この行を追加してください/WPMathA << /FileType /TrueType /Path (/usr/local/share/fonts/Wphv07na.ttf) /SubfontID 0 /CSI [(Identity) 0] >> ;

そして_gs -o embedeed-font.pdf -sDEVICE=pdfwrite -dEmbedAllFonts=true -I/usr/local/share/fonts/Wphv06na.ttf no-embedded-font.pdf_を実行します

背景情報については、_file:///usr/share/doc/fontconfig/fontconfig-user.html_をご覧ください。 $ XDG ... _ps axwwe_が示す限り、14.04では何も設定されていない一連の環境変数のデフォルトがあるので、詳細についてはXDGベースディレクトリの仕様を参照してください。 。

2
Metta Crawler