2011-10-24 4 views
0

Dans Open office, j'ai créé une macro pour l'impression de documents.OpenOffice "Imprimer" Macro Erreurs à la fermeture

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 

J'appelle cette macro de mon C# programme, les lancements macro et le document imprime cependant les erreurs macro quand il arrive à la ligne « Doc.Close (vrai) » et parfois verrouille l'ordinateur jusqu'à ce que le programme est terminé par le gestionnaire de tâches. Y a-t-il quelque chose que je devrais faire différemment? S'il vous plaît laissez-moi savoir si vous avez besoin d'informations supplémentaires. -Merci

Répondre

0

Voici ce qui a fonctionné (j'ai une fonction de document ouvert)

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 

La partie importante est:

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

cela fait que nous ne cherchons pas à fermer le document pendant que nous essayons de l'imprimer.

Source: http://user.services.openoffice.org/en/forum/viewtopic.php?f=5&t=40719

Questions connexes