CGMファイルはFrameMakerで正しくスケールされません - 秘密のフラグ値が必要ですか?

CGM(またはインタラクティブなWebCGM)ファイルを直接作成するコードがあります。私たちはすべてのCGMプリミティブを完全に制御し、必要に応じてバージョン1,3、または4のファイルを生成することができます。一般的にCGMはさまざまな業界標準のレンダラー(MetaWeb、SDI、ISoViewなど)に完全にレンダリングされます。これらのレンダラーを使用すると、欠陥なしで拡大縮小、パンまたはズームを行うことができます。

Unfortunatleyエンドユーザが同じファイルをFramemaker(バージョン10)にインポートするときに問題が発生します。最初のインポート後のCGMファイルのビューは正しいです。しかし、ユーザがページ内のCGM図を拡大または縮小することを選択した場合、次のことがわかります。

  • 1) on shrink - not only is the text font reduced in proportion (as expected) but the Character Spacing (CGM class 5, element 13) and the Character Expansion Factor (class 5, element 12) also shrink. Overall, the text shrinks out of proportion in the horizontal driection

    2) on expansion - all three of text font, Character Spacing and Character Expansion Factor increase - so text that was originally confined within a graphical box will now extended considerably beyond the right hand margin.

これはFramemakerのバグのようです。ただし、エンドユーザーは、第三者が正しくスケールするファイルを生成しています。これらのファイルの機能をコピーしました。特に設定します。

version to: '1'
scaling mode to: ABSTRACT   
scale to 0   
using Text(class 4, element 4) in place of Restricted Text (class 4, element 5).

また、文字間隔と文字拡張係数(つまり1,0,0 0.01)のさまざまな値を試してみました。不思議なことに、これらの要素の両方に元のファイルには値 '9.0E-44'が含まれています。これは16進数0x00 0x00 0x00 0x40です。これは 'シークレットフラグ値'のように見えますが、それを自分のファイルに使っても効果がないようです。

誰もがこのフラグの値の意味と使用方法を知っていますか?

0

2 答え

私たちは実際にこの問題を解決することに成功しました。 FrameMakerのインポートは非​​常に特殊で、CHARACTER EXPANSION FACTORとCHARACTER SPACINGのハードコーディングされた値が必要です。

私が前に見逃したことは、よく知られているIEEE float形式をサポートすることになるので、REAL PRECISIONは[0] [9] [23]に設定されていませんでしたが、[1] [16] [16]古くからの固定小数点フォーマット。多分0xex 0x00 0x00 0x00 0x40の値。このエンコーディングではもう少し意味があります(それでも秘密のフラグ値)。

これをいったん実行すると、ファイルは正常にインポートされました.FrameMakerが拡張または縮小されると、他のレンダラーと同じようにテキストが正しく動作しました。

私たちがREAL PRECISIONを[0] [9] [23]に設定しても、IEEE値として再表現されると '0x00 0x00 0x00 0x40'が動作するかどうかを調べることはできません。私たちはこのFrameMakerバグの周りに何かを見つけただけで安心しました!

1
追加された

仕様に秘密のフラグ値はありません.ISO 8632-3仕様では、文字拡大ファクタと文字スペースの両方が実際の値であることに言及しています。表示されているHEX値は、値がほぼゼロであることを意味します。

CHARACTER SPACINGの値がゼロに近いことが理にかなっています(仕様から):

文字間隔:文字列内の文字間に追加される余白の量を指定します。

それは本当に文字列拡張ファクタのためのものではありません:

文字の拡大率は、文字の幅と高さの比率とフォントデザイナーが指定した比率との偏差を指定します。

仕様の附属書Dは実際に展開のためにゼロ値を扱う方法を述べていないので、すべてのパーサーがケースを別々に扱うかもしれません。

0
追加された