Salve a tutti... io ho creato questo codice per far si che PHP mandasse in stampa sul server un file di Word (già compilato) sulla stampante desiderata e in numero di copie passato da parametro. Anche l'url del file viene passato da parametro.
codice:
Option Explicit

Private objWord As Word.Application

Public Function stampa(stampante As String, url As String, copie As Integer)
 On Error Resume Next
 Set objWord = New Word.Application
 Dim objDoc As Word.Document

 Set objDoc = objWord.Documents.Open(url)

 objWord.ActivePrinter = stampante
 objWord.PrintOut Background:=False, Copies:=copie
 objDoc.Close

 objWord.Quit
 Set objWord = Nothing
 stampa = "Stampa riuscita su " + stampante
 
If Err.Number <> 0 Then
 objWord.Quit
 Set objWord = Nothing
 stampa = "Stampa non riuscita su " + stampante + "
Descrizione Errore: " + Err.Description
End If
End Function
Il tutto funziona al 95%, ma a volte si pianta e fa piantare Apache che aspetta risposte.
Ora so che si pianta quando il file di word è già aperto da qualcuno, e mi chiedevo se era possibile dirgli di aprirlo in sola lettura o almeno di non aprirlo se già aperto e ritornare un warning (tipo attenzione file aperto).
Per le altre volte che si blocca non siamo riusciti a capire il perche, quindi non ho altre info.
Mi aiutereste a risolvere qualcosina di questi problemi? Ad esempio si potrebbe creare un file di log per gli errori, almeno da capire che succede quando si pianta?
Avete altre idee?
Grazie Rino