Top > OOoBasic > Calc > print
*印刷 [#z7e4b356]

印刷してみます。印刷には com.sun.star.view.XPrintable インターフェースのメソッドを使用します。

#contents
**印刷 [#yd7f19ab]
印刷するにはドキュメントオブジェクトの ''print'' メソッドを使用します。

>void ''print''( []com.sun.star.beans.PropertyValue xOptions )

xOptions: 印刷時の引数

xOptions には .view.PrintOptions サービスのプロパティーを指定します。

,.view.PrintOptions,==
,プロパティー,
,integer ''CopyCount'',印刷する部数
,string ''FileName'',ファイルへ印刷するときのファイル名
,boolean ''Collate'',ページ順に並べるかどうか
,boolean ''Sort'',Collate の方を使用するべき
,string ''Pages'',印刷するページ番号

まずは,PrintOptions を特に使用せずに印刷してみます。

 Sub print_1
 Dim oDoc As Object
 Dim aPrintOption(0) As New com.sun.star.beans.PropertyValue
 
   oDoc = ThisComponent
   oDoc.print(aPrintOption())
 End Sub


印刷する部数の指定や印刷するページを指定してみます。1 ページと 3 から 5 ページを 2 部ずつ印刷します。

 Sub print_2
 Dim oDoc As Object
 Dim aPrintOption(1) As New com.sun.star.beans.PropertyValue
 
   oDoc = ThisComponent
   aPrintOption(0).Name = "CopyCount"
   aPrintOption(0).Value = 2
   aPrintOption(1).Name = "Pages"
   aPrintOption(1).Value = "1,3-5"
   oDoc.print(aPrintOption())
 End Sub
**プリンタの設定 [#f678ebbc]
印刷するプリンターを設定します。

プリンターの設定には ''setPrinter'' メソッドを使用します。また,設定の取得には ''getPrinter'' メソッドを使用します。

>void ''setPrinter''( [].beans.PropertyValue aPrinter )

>com.sun.star.beans.PropertyValue ''getPrinter''()

aPrinter には次の値を使用します。

,.view.PrinterDescriptor,==
,string ''Name'',プリンター名
,.view.PaperOrientation ''PaperOrientation'',用紙方向
,.view.PaperFormat ''PaperFormat'',用紙のフォーマット (サイズ)
,.awt.Size ''PaperSize'',用紙サイズ
,[readonly] boolean ''IsBusy'',プリンターがビジーかどうか
,[readonly] boolean ''CanSetPaperOrientation'',用紙方向を設定することができるかどうか
,[readonly] boolean ''CanSetPaperFormat'',用紙のフォーマットを設定することができるかどうか
,[readonly] boolean ''CanSetPaperSize'',用紙のサイズを設定することができるかどうか

プリンター名にはメニュー > ファイル > 印刷 で表示されるダイアログのリストに表示されるものから名前を使用します。

用紙方向は ''PaperOrientation'' に .view.PaperOrientation の enum を使用して設定します。

,.view.PaperOrientation,==
,PORTRAIT,縦
,LANDSCAPE,横

用紙フォーマットは ''PaperFormat'' に .view.PaperFormat を使用して設定します。

,.view.PaperFormat,==
,A3,A4
,A5,B4
,LETTER,LEGAL
,TABLOID,USER

用紙サイズを設定する必要があるときには ''PaperSize'' に .awt.Size を使用して設定します。ここで設定する必要があるのは, ''PaperFormat'' を .view.PaperFormat.USER に設定したときです。

,.awt.Size,==
,WIDTH,幅
,HEIGHT,高さ

プリンターを選択して,用紙を縦, A4 にして印刷するときには次のようにします。8 行目の PrinterName のところを使用するプリンター名に変更してください。

 Sub print_3
 Dim oDoc As Object
 Dim aPrintOption(0) As New com.sun.star.beans.PropertyValue
 Dim aPrinter(2) As New com.sun.star.beans.PropertyValue
 
   oDoc = ThisComponent
   aPrinter(0).Name = "Name"
   aPrinter(0).Value ="PrinterName"
   aPrinter(1).Name = "PaperOrientation"
   aPrinter(1).Value = com.sun.star.view.PaperOrientation.PORTRAIT
   aPrinter(2).Name = "PaperFormat"
   aPrinter(2).Value = com.sun.star.view.PaperFormat.A4
   
   oDoc.setPrinter(aPrinter())
   oDoc.print(aPrintOption())
 End Sub

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes