v17r5では,4D View Proのエクスポート(VP EXPORT DOCUMENT
)が拡張され,PDF形式が指定できるようになりました。
v18では,より正確なPDFドキュメントが出力できるよう,フォントの埋め込みがサポートされるようになりました。
Manage Printing and PDF export
埋め込みに対応しているのは,OpenType(.otf
.ttf
)フォントです。SpreadJSが内部的に使用しているpdfkit
の制限により,Unicodeマップを有するフォントだけが使用できます。システムにプリインストールされているフォントには,Unicodeマップを有さないものもあるため,エクスポートの前にフォントファイルがスキャンされ,埋め込みができるかどうか,判断されるようになっています(SpreadJSがデフォルトでサポートしているフォントはスキップします)。フォントファイルのスキャンは,下記の仕様に基づいて実行されます。
Font file
は,VP EXPORT DOCUMENT
が埋め込みフォントファイルを特定するため,VP EXPORT DOCUMENT
が内部的に使用するコマンドとして追加されました。4D View Proドキュメント内で使用されているフォントに対応するフォントファイルがみつからない場合,SpreadJSのデフォルトフォントが使用されます。
前述したように,PDFに埋め込むことができるのは.otf
.ttf
ファイルだけであり,フォントコレクション(.ttc
)はサポートされていないことに留意してください。たとえば「Gill Sans」フォントは,フォントコレクションなので,印刷はできますが,PDFに埋め込むことはできません。これは(SpreadJSおよびpdfKitの)仕様です。
回避策として,フォントコレクションを個別のフォントファイルに分割するオンラインサービスが使用できるかもしれません。
4Dのキーボードショートカットは,モディファイアキーとA
からZ
(文字)の単純な組み合わせで設定されています。ロシア語キーボードのレイアウトは,西欧レイアウトとは入力できる文字が違うため,ショートカットの設定ダイアログを表示している間,無効にされるべきですが,Macの場合,そのままキリル文字が入力できてしまいます。しかし,そのように設定したショートカットは無効です。ショートカットは,西欧レイアウトで設定するようにしてください。
整数の11
に実数の1.5
を加算した値は,何でしょうか。
$Int:=11
$Real:=1.5
$Int:=$Int+$Real
上記の演算は,32ビット版では13
(12.5
を切り上げた値),64ビット版では12
(12.5
を切り下げた値)となります。これは仕様です。
64ビット版の4Dでは,インタープリターモードとコンパイルモードの動きを揃えるため,インタープリターモードであっても,Intel CPUの「丸め」処理(最近接偶数丸め)で「丸め」処理が実行されるようになっています。一方,32ビット版は,従来どおり,「四捨五入」処理が実行されるため,演算結果に違いがあります。
Windows版でフォームオブジェクトを同一メソッド内で非表示に設定し,移動してから非表示を解除した場合,画面上ではオブジェクトが以前の位置と新しい位置の両方に表示されます。これはAPIの特性に由来する振る舞いであり,現状では仕様です。オブジェクトの「増殖」を防止するためには,下記のようなコードを避けてくだだい。
OBJECT SET VISIBLE (*;"object";False)
OBJECT SET COORDINATES*;"object";$left;$top;$right;$bottom)
OBJECT SET VISIBLE (*;"object";True)
4D Write ProのHTMLパーサーは,XHTML(XML形式のHTML)をインポートするように設計されています。正しくないXMLのインポートは失敗するかもしれません。たとえば,アンパーサンド記号(”&”)は&
のようにエスケープされている必要があります。WP New
で初期化するテキストは,標準テキストや不完全なHTMLコードの断片ではなく,XHTMLであるべきです。
タグが省略された標準テキストは,まずHTMLとして整形され(この時点で&
は&
になります),その後,XMLとして解析されるので,エラーになります。アンパーサンド記号(”&”)のようにエスケープが必要な文字が含まれるテキストを4D Write Proでインポートする場合,文字がエスケープされた標準テキストをWP New
に処理させようとするのではなく,文字がエスケープされていない標準テキストをWP SET TEXT
で処理するようにしてください。