AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

PDF-Dateien drucken (viele)

Ein Thema von rokli · begonnen am 16. Nov 2022 · letzter Beitrag vom 28. Nov 2022
Antwort Antwort
Seite 1 von 3  1 23      
rokli

Registriert seit: 21. Mär 2009
Ort: Rödinghausen
301 Beiträge
 
Delphi 10.4 Sydney
 
#1

PDF-Dateien drucken (viele)

  Alt 16. Nov 2022, 13:07
Moin,
wir müssen zwei mal am Tag, Morgens und Mittags, PDF-Dateien drucken, die von unserem ERP System erstellt werden.
Die PDF-Dateien liegen als einzelne Dateien in einer Netzwerkfreigabe auf einem Windows Server. In der Regel hat jedes Dokument eine DinA4 Seite Inhalt. Manchmal 2 Seiten. Der Inhalt ist Text und 2 Barcodes.
Es handelt sich um jeweils ca. 500 Seiten - die in einer definierten Reihenfolge ausgegeben werden müssen. Die Reihenfolge definiert ein SQL Statement, dass die gewünschte Sortierung erstellt und dann im Datensatz Informationen für den Speicherort und den Dateinamen bereitstellt.
Gedruckt wird das ganze auf einem Kyocera TASKalfa 4002i.
Gedruckt wird mit Foxit Reader, da der Adobe Acrobat Reader garnicht zum laufen zu bringen war.

Dazu haben wir einen Druckjob geschrieben, der in einer Schleife die Datenbank durchläuft und für jede Datei diese Prozedur aufruft:

Delphi-Quellcode:
procedure TfrmMain.p_PrintAndUpdate(cFileName, cDruckWeg : String);
// Neues Dateiprinten
const
   DprPath = '';
   OutPutPath = '';
var
   Parameters   : String;
   Dcc32Path   : String; // 'C:\Program Files (x86)\Foxit Software\Foxit Reader\Foxit Reader.exe';
begin
   Dcc32Path   := FoxitReader;
   Parameters   := '/p ' + cFileName;

   ShellExecAndWait(Dcc32Path , OutPutPath , Parameters ,'open', 1);
end;
Der SchellExecAndWait wird verwendet, weil sonst die Dokumente immer wieder durcheinander gedruckt wurden.

Seid ein paar Tagen haben wir das Problem, dass zwischendurch einseitige PDF-Dokumente zerstückelt werden, nur zur Hälfte gedruckt werden oder auch leere Blätter ausgegeben werden.

Habt Ihr ähnliche Anforderungen, so viel Dokumente auf einmal auszudrucken?
Wie habt Ihr das gelöst?
Wäre das zusammen-mergen von z. B. jeweils 100 PDF-Dokumenten zu einem einzigen neuen PDF-Dokument eine Option? Dann gäbe es nur noch 5 Druckerwarteschlagen-Einträge.

Danke für Tipps.
Rolf
wenn nicht anders angegeben, schreibe ich zu D7, XE2 und MS SQL - ansonsten fragen Sie ihren Administrator oder einen Operator. Update 06/2020: Delphi 10.4 Sydney
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#2

AW: PDF-Dateien drucken (viele)

  Alt 16. Nov 2022, 13:34
Wäre das zusammen-mergen von z. B. jeweils 100 PDF-Dokumenten zu einem einzigen neuen PDF-Dokument eine Option? Dann gäbe es nur noch 5 Druckerwarteschlagen-Einträge.
Ja, das wäre jetzt ganz spontan meine erste Idee gewesen.

Da kann dann auch grundsätzlich weniger schief gehen.
Du hast die Files, kannst die mit entsprechenden Tools zu einem großen PDF zusammen packen, und das dann drucken.

Ich würde allerdings ein wenig experimentieren. PDFs zu handhaben ist immer etwas tricky, und kann je nach verwendetem Tooling gerne mal extrem auf den Arbeitsspeicher gehen.
Ggf. ist es schneller oder praktikabler, 50x 10 zu machen als 5x 100 (oder irgendwas in der Mitte, wie gesagt, am besten etwas experimentieren).
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
677 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: PDF-Dateien drucken (viele)

  Alt 16. Nov 2022, 14:20
Wenn die PDF Dateien eh von eurem ERP erstellt werden, gibt es dann nicht eine Möglichkeit zweimal zu drucken? Zum Beispiel in ein leichter druckbares Format und in PDF?
Wir verwenden List & Label. Da gibt es ein Export/Vorschauformat als Datei was man sehr einfach später drucken kann.
Schön ist dort auch das alle Drucke in einer Datei stecken können und man trotzdem noch jeden einzelnen Druck auswählen kann.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: PDF-Dateien drucken (viele)

  Alt 16. Nov 2022, 14:35
Bei meinem letzten Arbeitgeber hatten wir ein ähnlich gelagertes Problem. Mein dortiger Vorgänger hatte es auch über Adobe gelöst. Allerdings wurde dann die API mal geändert, was zu Problemen führte. Ohne API gab es dann Sortierungsprobleme (wie auch bei euch). Foxit haben wir ebenfalls versucht und sind am Ende bei einer Komponente für Delphi gelandet (WPViewPDF-Plus). Damit hatten wir dann volle Kontrolle über den gesamten Druckvorgang und konnten die Dokumente sogar vorher noch für unsere Bedürfnisse anpassen. Es gibt sicher auch andere Komponenten, mit denen man das hinbekommt.
Fazit:
Man kann sich nicht auf Drittanbieter verlassen, die ihre API oder Aufrufparameter ändern könnten. Mit der Komponente war dann sogar mehr möglich, als ursprünglich geplant.
Auch wenn es nicht ganz billig ist, rechnet es sich, wenn man die eingesparte Zeit, für die ganzen Versuche dagegen rechnet.
Peter
  Mit Zitat antworten Zitat
itblumi

Registriert seit: 28. Mär 2009
73 Beiträge
 
Delphi XE6 Professional
 
#5

AW: PDF-Dateien drucken (viele)

  Alt 16. Nov 2022, 15:22
Hallo rokli,

falls du dich entscheiden solltest die PDF-Dateien zu kombinieren kannst du das relativ einfach mit meinem Ghostscript-Wrapper machen oder Ghostscript direct über die Konsole aufrufen.

Example:
Code:
var
  AConverter: TGS_PdfConverter;
  AFiles: array of string;
begin
  // vorher noch das array mit deinen Dateien füllen
  AConverter := TGS_PdfConverter.Create('pfad zur dll');
  AConverter.ToPdf(AFiles, 'meinekombinierte.pdf', false);
  FreeAndNil(AConverter);
end;
Der code ist ungetestet sollte aber für dich ausreichen.

Die Bibliothek findest du auf Github https://github.com/SKI-Systems/Ghostscript-API-Wrapper
Jan
Ein neuer Tag bringt so einiges mit sich. Was auch immer es ist, es bleibt ein kleines Abenteuer.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#6

AW: PDF-Dateien drucken (viele)

  Alt 16. Nov 2022, 15:43
Ihr könntet auch die PDF selber zeichnen/drucken.
Also, wenn ihr die PDFs irgendwie auf ein Canvas oder in eine Datei (Bitmap/PNG/TIFF/......) bekommt, mit PDF-Komponenten oder Programmen (Console mit Parameter, ActiveX, sonstige API)
dann könnt ihr das in der gewünschten Reihenfolge in einen oder mehrere Durckaufträge (TPrinter) gezielter rein- und ausgeben.

DevExpress, SynPDF oder andere PDF-Komponenten
oder direkt aus Reportingtools (ala Fast-Report)





Oder auch mal ganz anders gefragt:

Warum müsst ihr überhaupt so viel und so "fehleranfällig" organisiert drucken?
  • muß es unbedingt erst in die PDFs oder bekommt man die Drucke nicht auch von wo anders
  • kann man die Drucke nicht anders organisieren?
    • also nicht ALLE so schnell hintereinander auf einen Haufen
    • in Ruhe, über längere Zeit (da hast auch Zeit für Pausen, zwischen den Drucken, damit die nicht falsch rauskommen können)
      und nicht nur auf EINEN Haufen
  • ...
  • Und VORALLEM muß es wirklich gedruckt werden?
    https://www.delphipraxis.net/211367-...abels-esl.html
    https://www.tronitag.com/de/digitale...er-produktion/
    Bei Google suchenZKONG
    https://www.tronitag.com/de/esl-label/zv-zb-serie/
    Es gibt nicht nur kleine, sondern auch größere bis große "Displays", bis hin zu übertrieben groß.

    A5 oder A6 wäre wohl bezahlbar, gegenüber der gesparten Arbeit,
    mehr Sicherheit, weil Automatisch alles dort wo es hin soll,
    und den geretteten Bäumen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (17. Nov 2022 um 10:03 Uhr)
  Mit Zitat antworten Zitat
BerndS

Registriert seit: 8. Mär 2006
Ort: Jüterbog
491 Beiträge
 
Delphi 12 Athens
 
#7

AW: PDF-Dateien drucken (viele)

  Alt 16. Nov 2022, 15:43
Ein weiters Tool, das man selber mitgeben kann/muss wäre SumatraPDF
Das ist kostenlos und wurde hier mal von Holger Klemt (IBExperts) empfohlen.
  Mit Zitat antworten Zitat
rokli

Registriert seit: 21. Mär 2009
Ort: Rödinghausen
301 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: PDF-Dateien drucken (viele)

  Alt 17. Nov 2022, 07:07
Moin,

als erstes mal herzlichen Dank an alle, die sich Gedanken gemacht haben!

Dann zu den Fragen, ob das wirklich gedruckt werden muss: Es handelt sich um Kundenbelege, mit denen als erstes Waren im Lager kommissioniert werden und die dann den Waren als Begleitpapiere beigelegt werden.

Das Mergen von PDF Dokumenten erscheint mir hier im Moment auch die beste Lösung zu werden.

Ich teste mal noch ein bisschen und stelle meine Lösung dann hier ein.

Danke.
Rolf
wenn nicht anders angegeben, schreibe ich zu D7, XE2 und MS SQL - ansonsten fragen Sie ihren Administrator oder einen Operator. Update 06/2020: Delphi 10.4 Sydney
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: PDF-Dateien drucken (viele)

  Alt 17. Nov 2022, 07:45
Auch wenn der initiale Overhead relativ hoch ist:
https://pdfbox.apache.org/2.0/commandline.html
Kann Mergen und Drucken (über Kommandozeile)
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von MyRealName
MyRealName

Registriert seit: 19. Okt 2003
Ort: Heilbronn
675 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: PDF-Dateien drucken (viele)

  Alt 17. Nov 2022, 10:28
Ich nutze DevExpress und den TdxComponentPrinter, wenn es vom SPeicher her überschaubar ist, tausende PDFs gehen da in einem 32-bit Programm nicht.
Wenn es unbekannt viele sind, dann lasse ich mir die Seiten als Bilder geben und male sie selbst auf den Printer.Canvas. Ich brauche die allerdings auch als einen grossen Druckjob.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz