印刷 
印刷してみます。印刷には com.sun.star.view.XPrintable インターフェースのメソッドを使用します。
印刷 
印刷するにはドキュメントオブジェクトの 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
プリンタの設定 
印刷するプリンターを設定します。
プリンターの設定には 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