Top > OOoBasic > Calc > print

印刷 Edit

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

印刷 Edit

印刷するにはドキュメントオブジェクトの print メソッドを使用します。

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

xOptions: 印刷時の引数

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

.view.PrintOptions
プロパティー
integer CopyCount印刷する部数
string FileNameファイルへ印刷するときのファイル名
boolean Collateページ順に並べるかどうか
boolean SortCollate の方を使用するべき
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

プリンタの設定 Edit

印刷するプリンターを設定します。

プリンターの設定には 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
A3A4
A5B4
LETTERLEGAL
TABLOIDUSER

用紙サイズを設定する必要があるときには 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