OpenOffice «Печать» ошибок макросов при закрытии - PullRequest
0 голосов
/ 24 октября 2011

В Open office я создал макрос для печати документов.

sub printDoc(FileName)
Dim Url as String
Url = convertToUrl(FileName)

Dim Doc as variant
Doc = starDeskTop.loadComponentFromUrl(Url, "_hidden", 0, Array())
Doc.Print(Array())
Doc.Close(True)
End Sub

Я вызываю этот макрос из моей программы на c #, макрос запускается, и документ печатает, однако, ошибки макроса, когда он попадает в строку«Doc.Close (True)» и иногда блокирует компьютер до тех пор, пока программа не будет завершена через диспетчер задач.Есть ли что-то, что я должен делать по-другому?Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.-Спасибо

1 Ответ

0 голосов
/ 06 марта 2012

Вот что сработало (у меня есть функция открытого документа)

sub printDoc(FileName)
   openDoc(FileName)

 Dim opts(0) As New com.sun.star.beans.PropertyValue
 opts(0).Name = "Wait"
 opts(0).Value = True
 thisComponent.Print (opts())
 If HasUnoInterfaces(ThisComponent, "com.sun.star.util.XCloseable") Then 
   ThisComponent.close(true) 
 Else 
   ThisComponent.dispose 
 End If 

End Sub

Важная часть:

Dim opts(0) As New com.sun.star.beans.PropertyValue
opts(0).Name = "Wait"
opts(0).Value = True
thisComponent.Print (opts())

это гарантирует, что мы не пытаемся закрыть документпока мы пытаемся его напечатать.

Источник: http://user.services.openoffice.org/en/forum/viewtopic.php?f=5&t=40719

...