2013年12月25日水曜日

TTFフォント名の変更

バーコード印刷ができない。

何が印刷されるか… 代わりに*ID番号*が印刷されてしまう、ということでした。

原因を探っていますと、どうもフォント名がWindowsによって異なるみたいでした。

"Thirty Ninth Bar"と思っていたものが、実は"Thirty Ninth Bar Plain"だった!

では、フォント名を"Thirty Ninth Bar Plain"→"Thirty Ninth Bar"に変換する処置を企てましょうと…

レジストリ編集「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink」を試みましたが、うまくいかず。

最終的にttfname3というツールを使用させていただきました。こちらから。

このような流れになります:
  • TTFからXMLを出力。
  • XMLを編集。
  • TTF+XMLで、新しいTTFを出力。

まず、XMLを出力します。

ttfname3.exe "Thirty Ninth Bar.ttf" -o "Thirty Ninth Bar.xml"

出力されたXMLは次の通り:

<?xml version="1.0"?>
<Fonts>
<Font>
  <!-- ****************** Font(0) ****************** -->

  <Header
    Ascender="1956"
    Descender="-430"
    TypoAscender="1956"
    TypoDescender="-410"
    WinAscender="1956"
    WinDescender="412"
    AverageCharWidth="1188"
    Codepage1="00002b87"
    Codepage2="b02d5bc3" />

  <Name>

    <!-- Copyright -->
    <T n="1,0,0000,0"></T>
    <T n="3,1,0409,0"></T>

    <!-- Family -->
    <T n="1,0,0000,1">Thirty Ninth Bar</T>
    <T n="3,1,0409,1">Thirty Ninth Bar</T>

    <!-- Subfamily -->
    <T n="1,0,0000,2">Plain</T>
    <T n="3,1,0409,2">Plain</T>

    <!-- UniqueIdentifier -->
    <T n="1,0,0000,3">FontMonger:Thirty Ninth Bar Plain</T>
    <T n="3,1,0409,3">FontMonger:Thirty Ninth Bar Plain</T>

    <!-- FullName -->
    <T n="1,0,0000,4">Thirty Ninth Bar Plain</T>
    <T n="3,1,0409,4">Thirty Ninth Bar Plain</T>

    <!-- Version -->
    <T n="1,0,0000,5"></T>
    <T n="3,1,0409,5"></T>

    <!-- PostscriptName -->
    <T n="1,0,0000,6">ThirtyNinthBarPlain</T>
    <T n="3,1,0409,6">ThirtyNinthBarPlain</T>

    <!-- Trademark -->
    <T n="1,0,0000,7"></T>
    <T n="3,1,0409,7"></T>

  </Name>
</Font>
</Fonts>

さて、ことごとく"Plain"を取り払います。"Plain"だけになっているものは、"Regular"に変更します。

    <!-- Subfamily -->
    <T n="1,0,0000,2">Regular</T>
    <T n="3,1,0409,2">Regular</T>

書き戻します。

ttfname3.exe "Thirty Ninth Bar.ttf" "Thirty Ninth Bar.xml" -o "Thirty Ninth Bar Regular.ttf"

古いフォントを削除し、新しいフォントを追加、パソコンの再起動が必要。これで変更できているはずです。

2013年12月18日水曜日

Windows 8 「ファイル履歴」機能で、バックアップができなくなった

ファイルの自動バックアップに、「ファイル履歴」機能を活用しています。一応バックアップをこれに頼っているので、動かなくなると、ちょっと困ります。

或る時から正常に終了しなくなりました。

そして、イベントビューアにはこのようなログが・・・
構成 C:\Users\Sola\AppData\Local\Microsoft\Windows\FileHistory\Configuration\Config でユーザー ライブラリの変更のスキャンと変更されたファイルのバックアップを実行できません

ログに出てきます、この辺のフォルダ「C:\Users\Sola\AppData\Local\Microsoft\Windows\FileHistory\Configuration」の中身はこの通りです。


ESENT(JetBlue)をご利用のようです。そこで、OSに付属のesentutlで破損チェックを実施いたしました。


「Integrity check completed.  Database is CORRUPTED!」

壊れていると言っています。

esentutl /p を使っても直らない。

直し方が判りません。

仕方なく、バックアップのデータを削除することにしました。

FileHistoryフォルダ、「C:\Users\Sola\AppData\Local\Microsoft\Windows\FileHistory」フォルダそのものを削除して、バックアップ先のFileHistoryも、名前を変えて、新規の状態に戻しました。

データベースは一度壊れると大変です。。。