Drukowanie PDF w pętli

0

Cześć, robię programik do drukowania plików pdf o różnym rozmiarze (jednorazowo mają być drukowane pliki 40 i 400 stronnicowe). Niestety jak drukuję jakieś większe pliki to czasem nie zdążą się załadować zanim rozpocznie się ładowanie kolejnego pliku. Próbowałem różnych zdarzeń sprawdzających koniec procesu ale nie działają :( Próbowałem Thread.Sleep ale nie da się dobrać czasu który odpowiadałby ładowaniu do drukarki małego i dużego pliku :( Niestety jestem początkujący bardzo i skończyły mi się pomysły :( Program pobiera nazwy plików z listboxa i drukuje je. W pętli jest zagnieżdżona druga pętla, która pobiera argument z textboxa do którego można wpisać liczbę kopii wydruku. Program korzysta z adobe readera i klasy proccess. Jeśli ktoś ma jakiś pomysł to będę wdzięczny za pomoc :)



for(int i = 0; i < lstPliki.Items.Count; i++)
                    {
                        for (int j = 0; j < Convert.ToUInt16(txtKopie.Text); j++)
                        {
                            lstPliki.SetSelected(i, true);
                            info.FileName = "AcroRd32.exe";
                            info.Arguments = String.Format(" /h /t \"{0}\"", lstPliki.Items[i].ToString());
                            info.Verb = "open";
                            info.UseShellExecute = true;
                            info.CreateNoWindow = true;
                            proc.StartInfo = info;
                            proc.Start();
                            progressBar1.Increment(1);
                            if (proc.HasExited)
                            {
                                Thread.Sleep(1000);
                            }
                        }
                    }
                    proc.Close();
0

Dzięki ale próbowałem i nie działa :(

0

Nie wiem czy dobrze zrozumiałem, ale proc.WaitForExit nie jest rozwiązaniem?

0
Dregorio napisał(a):

Nie wiem czy dobrze zrozumiałem, ale proc.WaitForExit nie jest rozwiązaniem?

Może coś źle robię ale jak daję WaitForExit bez wskazywania limitu czasu to nie zamyka mi okna i nie przechodzi do drukowania kolejnej strony, muszę ręcznie zamknąć otwarte okno adobe readera. Jak daję WaitForExit z jakimś limitem czasu to zamyka proces po jakimś czasie nie aż cały plik będzie w kolejce do drukowania. Teraz dodałem większy czas oczekiwania i mam nadzieję że będzie ok :) na razie testuję i działa, myślałem po prostu że udało by się dodać jakieś zdarzenie sprawdzające kiedy program skończy wysyłać pdf do druku :)

if(proc.HasExited == true)
                            {
                                Thread.Sleep(10000);
                            }
                            else
                            {
                                Thread.Sleep(25000);
                            }


1 użytkowników online, w tym zalogowanych: 0, gości: 1