Ciao,
Problema:
Stampo una serie di file con PDFCreator e naturalmente mi si apre il programma associato al tipo di file che stampo, ad es. AcroRd32 in caso di PDF.
Finché non chiudo manualmente il processo la mia applicazione non va avanti e resta ferma alla prima stampa
Ecco il codice
codice:
Public Sub cConvertFile(ByVal Filetyp As String, ByRef FileDaConvertire As String, Optional ByVal SubFormat As String = "PDF/A-1b")
Dim fname As String, fi As FileInfo, DefaultPrinter As String
Dim opt As PDFCreator.clsPDFCreatorOptions
Dim opt2 As PDFCreator.clsPDFCreator
Dim NomeFile As String
Dim PosizionePunto As Integer
Dim PosizioneSlash As Integer
Dim Este As Integer
Dim Processo As System.Diagnostics.Process()
Dim ProcessoPDF As System.Diagnostics.Process()
PosizionePunto = InStr(FileDaConvertire, ".")
PosizioneSlash = InStrRev(FileDaConvertire, "\") + 1
Este = Len(FileDaConvertire) - PosizionePunto
MsgBox(FileDaConvertire & ";" & PosizionePunto & ";" & PosizioneSlash)
NomeFile = Mid(FileDaConvertire, PosizioneSlash, Len(FileDaConvertire) - PosizioneSlash - Este)
With OpenFileDialog1
.Multiselect = False
.CheckFileExists = True
.CheckPathExists = True
'.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*"
End With
opt = _PDFCreator.cOptions
With opt
.UseAutosave = 1
.UseAutosaveDirectory = 1
.AutosaveDirectory = Percorso & "\PDFA\"
.AutosaveFormat = 9
If Filetyp = 5 Then
.TIFFResolution = 72
End If
opt.AutosaveFilename = NomeFile
End With
With _PDFCreator
.cOptions = opt
.cClearCache()
DefaultPrinter = .cDefaultPrinter
.cDefaultPrinter = "PDFCreator"
.cPrintFile(FileDaConvertire)
ReadyState = False
.cPrinterStop = False
End With
With Timer1
.Interval = maxTime * 1000
.Enabled = True
Do While Not ReadyState And .Enabled
Application.DoEvents()
Loop
.Enabled = False
End With
If Not ReadyState Then
MsgBox("Creating printer test page as pdf." & vbCrLf & vbCrLf & _
"An error is occured: Time is up!", MsgBoxStyle.Exclamation, Me.Text)
End If
_PDFCreator.cPrinterStop = True
_PDFCreator.cDefaultPrinter = DefaultPrinter
opt = Nothing
End Sub
l'applicazione resta ferma alla riga
codice:
.cPrintFile(FileDaConvertire)
fino a quando non chiudo manualmente il processo.
Non saprei proprio in quale istante far chiudere il processo con
codice:
Processo = Process.GetProcessesByName("AcroRd32")
Processo(0).Kill()
Idee?
Grazie