【ご質問】
印刷時に使用する用紙サイズの変更を行いたいのですが、可能でしょうか。
【回答】
{print-graphic}プロシージャのpage-descriptionを指定することで用紙サイズの指定が可能です。
以下のサンプルを参考にして下さい。
{curl 6.0,7.0,8.0 applet} {curl-file-attributes character-encoding = “shift-jis”}
{import * from CURL.GRAPHICS.PRINTER} {value let pf:#PrintRootFrame let g:Graphic={Frame font-size = 15pt, width=1in, height=1in, background=“red”, “test”}
||get-page-descriptionでPrintPageDescriptionを取得する let ppds:#{Array-of PrintPageDescription} = {Printer.get-page-description {if-non-null pn = {Printer.get-current-printer} then pn else “” } } ||用紙一覧を作成するためのデータモデル let size-model:DefaultListModel = {DefaultListModel {splice ppds}} ||用紙一覧を表示するリストボックス let list-box:ListBox = {ListBox selection-policy = “single”, width = 10cm, height = 10cm, data-model = size-model, list-item-creation-proc = {proc {val:any}:ListItem let ppd:PrintPageDescription = val asa PrintPageDescription {return {ListValueItem ppd, label = ppd.description} } } }
let cb:CommandButton = {CommandButton label=“test printing”, {on Action do set pf = {print-graphic g, ||リストボックスで選択した用紙(PrintPageDescription)を設定する page-description = list-box.value[0], ||縦、横を設定する orientation =PageOrientation.landscape } } } let v:View = {View {Frame width = 14cm, height = 10cm, {VBox list-box, cb} }, visibility = “normal”, {on WindowClose do {exit} } } {v.show} }
|
尚、指定する用紙の文字列は”指定したプリンタが返す文字列”と必ず一致させる必要があることにご注意ください。
プリンタによっては、用紙の名称が半角や全角、空白を含むなど、同じ名称でも文字列が若干異なる可能性があります。
(例.”A4″(半角)と”A4”(全角))
正常に機能しない場合は、まずは印刷可能な用紙の種類や名称の文字列などの違いをご確認ください。
詳細は、APIリファレンスの
[CURL.GUI.BASE]-[print-graphic]
の項をご参照ください。