Как совместить печать диапазаона с передачей других параметров print`у?

Автор ishayahu, 26 мая 2011, 09:16

0 Пользователи и 1 гость просматривают эту тему.

ishayahu

То есть надо объединить два куска кода:
REM вывод на печать
CellRangeName = "A1:F"+CStr(I-1)
CellRangeAddress = oSheet.getCellRangeByName(CellRangeName).RangeAddress
Sheet.setprintareas(Array(CellRangeAddress)) ' set the print area on the sheet
Doc.Print(Array()) ' print to default printer
'REMOVE PRINT AREAS
Sheet.setprintareas(array())

и
PrintProperties(0).Name = "Wait"
PrintProperties(0).Value = True
PrintProperties(1).Name = "PaperOrientation"
PrintProperties(1).Value = com.sun.star.view.PaperOrientation.LANDSCAPE
Doc.print(PrintProperties())

Спасибо за помощь!
WinXP - OO3.3/LibreOffice3.3

Рыбка Рио

Вот так работает:

Sub PrintAreas
Dim oDoc as object
Dim oSheet as object
oDoc=ThisComponent
oSheet=oDoc.CurrentController.ActiveSheet
oCellRangeAddress = oDoc.CurrentSelection.RangeAddress
'oCellRangeAddress = oSheet.getCellRangeByName("A1:B2").RangeAddress
PA=oSheet.PrintAreas
oSheet.setPrintAreas(Array(oCellRangeAddress)) ' set the print area on the sheet

Dim PrintProperties(1) as new com.sun.star.beans.PropertyValue
PrintProperties(0).Name = "Wait"
PrintProperties(0).Value = True
PrintProperties(1).Name = "PaperOrientation"
PrintProperties(1).Value = 1 'com.sun.star.view.PaperOrientation.LANDSCAPE
oDoc.setPrinter(PrintProperties())
oDoc.print(Array())
oSheet.setPrintAreas(PA)
End Sub

Т.е., нужна строчка oDoc.setPrinter(PrintProperties())
ubuntu 12.04 + LibO3.6.0

Рыбка Рио

Хотя, свояйство Wait наверное, нужно давать в oDoc.print(...), а не в setPrinter

setPrinter принимает такие свойства:
(Name)        (Value Type)          (Value)            (AccessMode)
(0)
Name          string                Name              [ReadWrite]
Handle        long                  0                  [ReadWrite]
Value         any                   PDF                [ReadWrite]
State         .beans.PropertyState  DIRECT_VALUE      [ReadWrite]
(1)
Name          string                PaperOrientation  [ReadWrite]
Handle        long                  0                  [ReadWrite]
Value         any                   -ANY-              [ReadWrite]
State         .beans.PropertyState  DIRECT_VALUE      [ReadWrite]
(2)
Name          string                PaperFormat        [ReadWrite]
Handle        long                  0                  [ReadWrite]
Value         any                   -ANY-              [ReadWrite]
State         .beans.PropertyState  DIRECT_VALUE      [ReadWrite]
(3)
Name          string                PaperSize          [ReadWrite]
Handle        long                  0                  [ReadWrite]
Value         any                   -ANY-              [ReadWrite]
State         .beans.PropertyState  DIRECT_VALUE      [ReadWrite]
(4)
Name          string                IsBusy            [ReadWrite]
Handle        long                  0                  [ReadWrite]
Value         any                   False              [ReadWrite]
State         .beans.PropertyState  DIRECT_VALUE      [ReadWrite]
(5)
Name          string                CanSetPaperOrie... [ReadWrite]
Handle        long                  0                  [ReadWrite]
Value         any                   True              [ReadWrite]
State         .beans.PropertyState  DIRECT_VALUE      [ReadWrite]
(6)
Name          string                CanSetPaperFormat [ReadWrite]
Handle        long                  0                  [ReadWrite]
Value         any                   False              [ReadWrite]
State         .beans.PropertyState  DIRECT_VALUE      [ReadWrite]
(7)
Name          string                CanSetPaperSize    [ReadWrite]
Handle        long                  0                  [ReadWrite]
Value         any                   True              [ReadWrite]
State         .beans.PropertyState  DIRECT_VALUE   
ubuntu 12.04 + LibO3.6.0

ishayahu

И как тогда его засунуть?
Но, в принципе, код работает. Возможно, даже без ошибок.
WinXP - OO3.3/LibreOffice3.3

ishayahu

Хотя нет, ошибка есть. Когда я вызываю макрос два раза подряд - вылетает офис целиком((

[вложение удалено Администратором]
WinXP - OO3.3/LibreOffice3.3

smaharbA

Ожидание не относится к формату
dim a(1) as new com.sun.star.beans.PropertyValue
a(0).Name="Wait"
a(0).Value=True
a(1).Name="Pages"
a(1).Value="1,2,3"
oDoc.print(a)
Я конечно далек от мысли... (с)