Print label:仕様が変わっている

Product :4D - 4D Server
4D : v16以降

お客様からの相談で調べてみたところ判明しました。
PRINT LABELの仕様が変わっている様です。特にアナウンスはなかったのですし
ドキュメントの説明も変わりない様です。

不具合なのか仕様なのかどちらでしょうか? :frowning:

おそらく32bitから64bitにするときに一から書き直したのだと思われます。
その過程で32bitまでの細かな仕様を継承していない様です。

横から失礼いたします。

私も

4D : v16.R5_32bit
でラベルについてお客様より問合せがありました。

ラベルエディタ画面で調整したラベルのフォーマットを保存して、
4Dを再起動してその保存したラベルを読み込もうとすると、4Dが落ちます。
(開発環境でもビルドした環境でも4Dが落ちます。
v14までは読み込んでも4Dが落ちることが無いのは確認しました)

また、デフォルトルックボタンも機能していないようです。
(v13まではデフォルトルックは機能しているようです。。)

v16から仕様が変わったのが原因でしょうか?

Matsusato

出力フォームを使用したPRINT LABEL

返信に時間を要してしまい,ほんとうに申し訳ございません。

問題を整理しますと:

  • バージョン間ではなく,32-bitと64-bitの違いである
  • 32-bitは,マージンが広め(carbonは印刷領域が用紙より狭い),ヘッダーは出力しない,幅は99pt(固定値?)
  • 64-bitは,マージンが狭い(正確に用紙の端から計測),ヘッダーを出力する,幅はフォーム幅

でした。

32-bit
[]29832770;“Your comment here…”[/]

64-bit
[]29832772;“Your comment here…”[/]

4DB
https://forums.4d.com/4DBB_Main/x_User/298210/files/29832775.zip

4DB (2)
https://forums.4d.com/4DBB_Main/x_User/298210/files/29832834.zip

64-bit/cocoaになってはじめて,
用紙ギリギリまで印刷ができるようになったのは仕様ですが,
それ以外の違いは特に説明がつかず,
いずれにしても,位置が合っていなければ,ラベル印刷は失敗なので,
確かにおかしいと思います。

ACI0099608

ご不便をおかけしており,申し訳ございません。

スレッドの投稿は,

ラベルエディターとは無関係(PRINT LABELとフォームの併用)
64ビット版の問題

ですので,別の問題になるかと思います。

クラッシュを再現する手順,

あるいは

クラッシュを再現するラベル設定ファイル

のご提供を願いすることはできないでしょうか。

お手数ですが,ご検討いただければ幸いです。

よろしくお願い申し上げます。

Miyako様
お世話になっております。
クラッシュを再現する手順等ですが、ご用意する時間が無いので、
Miyakoさんが作ってくれたLabel-Editorをお客様に提供しました。
どうしても4DのPrint Labelを使わないといけない場合が発生したら
改めて色々と違うVersionでも試してみます。
回答遅くなり申し訳ございませんでした。
よろしくお願いします。
MATSUSATO

本件,回答が遅れており,申し訳ございません。

ドキュメント

https://doc.4d.com/4Dv17/4D/17.2/Creating-labels.300-4403064.ja.html

によれば,PRINT LABELコマンドの場合,ラベル幅は水平マーカーで決まり,

[]30291519;“Your comment here…”[/]

エディター使用の場合,ラベル幅はフォーム幅で決まる,となっています。

ところが,64ビット版の場合,どちらの方法で印刷しても,ラベル幅はフォーム幅で決まることがわかります。
64ビット版のラベル印刷はコンポーネントで処理されており,水平マーカーが取得できないことが関係しているようです。

取り急ぎ,

64ビット版の場合,水平マーカーは考慮されないこと
幅はフォームの幅(幸い,水平マーカーの位置は表示できるので・・・)で調整する必要があること

・・・をドキュメントに記載するよう,担当部署に依頼を出しました。

ご不便をおかけしており,申し訳ございません。

その他の違い(コマンド印刷)

32ビット版
詳細エリアのオブジェクトだけ出力する(ヘッダーはページ上マージンとなる)
ラベルの高さは_詳細エリアの高さ_である
マージンは常にゼロである(SETで明示的に変更しても反映されない)

64ビット版
ヘッダー・フッター・ブレーク・極右など,ラベルの外にあるオブジェクトも出力される
ラベルの高さはフォームの高さである(2段目以降,ヘッダーも加算される
現在のPRINTABLE MARGIN(デフォルト:8,8,8,8)が継承される
(SETで明示的に変更すれば反映される)