c# PDF-Druckgeschwindigkeit erhöhen

  • C#

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    c# PDF-Druckgeschwindigkeit erhöhen

    Moin,

    Jemand eine Idee wie ich die Druckgeschwindigkeit von PDF-Drucken erhöhen kann?
    (ps: ich weiss, es sind keine Try-Catch etc in meinen Programmen enthalten... mache ich ganz am Schluss, wenn das wichtigste läuft ;) )

    C#-Quellcode

    1. if (ChkBlatt1.Checked == true)
    2. {
    3. int anzahl = 0;
    4. do
    5. {
    6. anzahl++;
    7. string pdf = "C:\\Users\\admin\\Desktop\\Apps\\Blatt1.pdf";
    8. string acrobat = "C:\\Program Files (x86)\\Adobe\\Acrobat Reader DC\\Reader\\AcroRd32.exe";
    9. Process process = new Process();
    10. process.StartInfo.FileName = acrobat;
    11. process.StartInfo.Verb = "printto";
    12. process.StartInfo.Arguments = "/p /s /h \"" + pdf + "\"";
    13. process.StartInfo.CreateNoWindow = true;
    14. process.StartInfo.RedirectStandardOutput = true;
    15. process.StartInfo.UseShellExecute = false;
    16. process.Start();
    17. process.CloseMainWindow();
    18. } while (anzahl < int.Parse(TxtBlatt1.Text));
    19. }
    20. //#############################################################
    21. if (ChkBlatt2.Checked == true)
    22. {
    23. int anzahl2 = 0;
    24. do
    25. {
    26. anzahl2++;
    27. string pdf = "C:\\Users\\admin\\Desktop\\Apps\\Blatt2.pdf";
    28. string acrobat = "C:\\Program Files (x86)\\Adobe\\Acrobat Reader DC\\Reader\\AcroRd32.exe";
    29. Process process = new Process();
    30. process.StartInfo.FileName = acrobat;
    31. process.StartInfo.Verb = "printto";
    32. process.StartInfo.Arguments = "/p /s /h \"" + pdf + "\"";
    33. process.StartInfo.CreateNoWindow = true;
    34. process.StartInfo.RedirectStandardOutput = true;
    35. process.StartInfo.UseShellExecute = false;
    36. process.Start();
    37. process.CloseMainWindow();
    38. } while (anzahl2 < int.Parse(TxtBlatt2.Text));
    39. }

    newsletter schrieb:

    ich weiss, es sind keine Try-Catch etc in meinen Programmen enthalten
    Das ist auch gut so. :thumbup:
    Nur:
    Was soll denn hier schneller ablaufen?
    Vielleicht ein schnellerer Rechner oder ne schnellere Platte?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @newsletter Kannst Du mal verbal beschreiben, welchen Weg Dein Dokument geht?
    Das liegt doch bereits als PDF vor.
    Willst Du eine PDF-Datei 15 Mal an den Drucker senden?
    Öffne es im Acrobat Reader.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Nein, es ist pro Kunde nur eins notwendig.
    Die Dokumente sind alle bereits vorhanden und müssen nicht erst erstellt, mit Ausnahme: befüllt werden.

    Ablauf des Programms:
    1. Vertragsbestätigung-Befüllung und Drucken (Word)
    2. Merkblatt, gehört hinter die Vertragsbestätigung (Pdf)
    [Variabel kommen hier noch weitere Dokumente unter Umstände doppelt gedruckt etc (=Zusatzpakete)]
    3. Lieferschein, gehört an das Paket, Befüllung + Druck (Word) <--Befüllung muss ich noch hinbringen, da es hier mehrere Produkte gibt, welche der Kunde bestellen kann. D.h.: je nach Auswahl müssen diese schön untereinander aufgelistet (ohne Lücken) sein.

    (Ja, man muss die Reihenfolge natürlich umgekehrt im Programm schreiben, damit es richtig im Drucker rauskommt)

    Der Drucker, an den es gehen soll, ist in der Logistikabteilung (momentan noch an den in meinem Büro). Je schneller die Dokumente rauskommen (=kürzere Ladezeiten), desto weniger geht ein Blatt mal verloren von den Mitarbeitern.

    Alles ist im gleichen Netzwerk
    An der Hardware + Netzwerk (hohe Datenübertragung) kann es weniger liegen :)

    ps: bei diesem oberen Abschnitt handelt es sich um die Zusatzblätter, welche optional mehrmals ausgedruckt werden können sollten.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „newsletter“ ()

    @newsletter Du kannst die Druckaufrtäge in einem Rutsch absenden, den Rest macht der Drucker-Treiber.
    Ob die dann aber in der richtigen Reihenfolge kommen, weiß ich nicht, musst Du mal ausprobieren.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RedFromGermany:
    Nunja, mehrere Dokumente drucken geht bereits. Nur gerade bei .Pdf ist die Geschwindigkeit nicht gerade die Beste.
    Werde übermorgen aber eher wieder an dem VBA-Script to C#-Script probleme beim übersetzen
    Arbeiten. Ohne den Lieferschein bin ich immernoch bei haufenweise einzelnen Words mit Formularfelder :/
    Danach gehts weiter mit SQL-DB-Übernahme im Oktober :D gibt noch einiges zu tun ;)
    @newsletter Besteht die Möglichkeit, das ganze Dokument in C# zu erstellen und zu drucken?
    Gugst Du hier: Drucken mehrseitiger Dokumente
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    So wie ich das sehe, startest du pro Dokument einen Prozess der sich mit der Druckaufgabe beschäftigt, wenn dieser abgeschlossen ist kommt das nächste Blatt. Eventuell könntest du dort parallelisieren und mehrere Prozesse starten sodass deine Dokumente schon alle in der Warteschleife sind ohne zu warten bis das jeweilig vorherige fertig ist? Allerdings weiß ich nicht ob der Acrobat Reader auch nur das Dokument in die Warteschlange einfügt und sich danach schließt.
    @RedFromGermany:
    Möglich wahrscheindlich schon, aber die Dokumente haben zum Teil grosse Bilder / Schaltpläne. Wenn ich diese ins Projekt verlagere als Ressource kommt dies womöglich dem Programm nicht zugute grösse etc...

    Gerade die Vertragsbestätigung enthält viele verschiedene Textformate/Links ist womöglich zu umständlich das zu schreiben/kann lange dauern bis man sowas hinkriegt. Deshalb arbeite ich immernoch mit Textmarken
    @newsletter Dann müssen wir mal die ganze "Logistik" unter die Lupe nehmen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!