![]() |
AW: PDF-Dateien drucken (viele)
Hi ItBlumi,
habe mir Deine Lösung angesehen und heruntergeladen. Dein beigefügte Testprogramm läuft auch. Dann habe ich, als ersten Test, das folgende Programm geschrieben:
Delphi-Quellcode:
Es läuft komplett, ohne Fehlermeldungen durch, tut aber leider nicht was es soll.
procedure TfrmMain.Button2Click(Sender: TObject);
var AConverter : TGS_Pdfconverter; aFiles : Array[0..9] of String; sQuellPfad : String; sZielPfad : String; begin sQuellPfad := 'C:\Temp\pdffen\quell\'; sZielPfad := 'C:\Temp\pdffen\'; aFiles[1] := sQuellPfad + '0174163013.pdf'; aFiles[2] := sQuellPfad + '0174163020.pdf'; aFiles[3] := sQuellPfad + '0174164010.pdf'; aFiles[4] := sQuellPfad + '0174164027.pdf'; aFiles[5] := sQuellPfad + '0174164034.pdf'; aFiles[6] := sQuellPfad + '0174164041.pdf'; aFiles[7] := sQuellPfad + '0174164065.pdf'; aFiles[8] := sQuellPfad + '0174164072.pdf'; aFiles[9] := sQuellPfad + '0174164089.pdf'; AConverter := TGS_PdfConverter.Create(sZielPfad); Aconverter.ToPdf(aFiles, sZielPfad + 'new.pdf', false); FreeAndNil(AConverter); ShowMessage('fertig'); end; Ich habe versucht in der GS_Converter nachzusehen, was da gemacht wird, verstehe aber nicht alles und komme daher nicht wirklich weiter. Würdest Du da einmal draufschauen? Danke. |
AW: PDF-Dateien drucken (viele)
Statt PDF als PostScript speichern?
"Gute" Drucker verstehen das direkt.
Delphi-Quellcode:
aber sollte wohl auch im Delphi über CopyFile oder TStream funktionieren, ohne ein Zusatzprogramm dazwischen.
COPY abc.ps \\servername\printername
Vielleicht sogar
Delphi-Quellcode:
oder eben \\localhost\printername
COPY abc.ps LPT1
|
AW: PDF-Dateien drucken (viele)
Hi rokli,
schau mal in den folgenden Eigenschaften was er dir dort ausgibt, wenn keine Datei erstellt wird dann dürfte ein Fehler aufgetreten sein.
Delphi-Quellcode:
AConverter.Debug := True;
// string liste mit dem was er macht AConverter.StdOut // errors als strings sollte eigentlich leer sein AConverter.LastErrors // error code -> dieser sollte 0 sein falls alles funktioniert hat AConverter.LastErrorCode |
AW: PDF-Dateien drucken (viele)
AConverter.ToPdf gibt dir auch eine Boolean Ausdruck zurück dieser sollte den Fehlercode (LastErrorCode) vor dem beenden der Prozedur prüfen.
Habe Dir das Ganze etwas anschaulicher zusammen gestellt.
Delphi-Quellcode:
Edit: Es kann auch sein das Ghostscript versucht zu ermitteln ob er Schreibrechte in dem Verzeichnis besitzt, dass kann mit unter schief gehen. Dies kannst du mit NOSAVER unterdrücken. Ich habe das noch zusätzlich hinzugefügt im obigen Code.
procedure TfrmMain.Button2Click(Sender: TObject);
var AConverter : TGS_Pdfconverter; aFiles : Array[0..9] of String; sQuellPfad : String; sZielPfad : String; begin sQuellPfad := 'C:\Temp\pdffen\quell\'; sZielPfad := 'C:\Temp\pdffen\'; aFiles[1] := sQuellPfad + '0174163013.pdf'; aFiles[2] := sQuellPfad + '0174163020.pdf'; aFiles[3] := sQuellPfad + '0174164010.pdf'; aFiles[4] := sQuellPfad + '0174164027.pdf'; aFiles[5] := sQuellPfad + '0174164034.pdf'; aFiles[6] := sQuellPfad + '0174164041.pdf'; aFiles[7] := sQuellPfad + '0174164065.pdf'; aFiles[8] := sQuellPfad + '0174164072.pdf'; aFiles[9] := sQuellPfad + '0174164089.pdf'; AConverter := TGS_PdfConverter.Create(sZielPfad); AConverter.Params.NoSaver := True; AConverter.Debug := True; // debug Ausgabe der Bibliothek aktivieren if (AConverter.ToPdf(aFiles, sZielPfad + 'new.pdf', false)) then ShowMessage('fertig') else begin ShowMessage('Fehler: ' + AConverter.LastErrors); AConverter.StdOut.SaveToFile(sZielPfad + 'output.log'); // Die Prozess Ausgabe speichern end; FreeAndNil(AConverter); |
AW: PDF-Dateien drucken (viele)
Zitat:
|
AW: PDF-Dateien drucken (viele)
Zitat:
![]()
Code:
(und vieles vieles mehr...)
pdftk datei1.pdf datei2.pdf ... dateix.pdf cat output gesamt.pdf
|
AW: PDF-Dateien drucken (viele)
Liste der Anhänge anzeigen (Anzahl: 1)
Habe Dir nochmal ein kleines Test Projekt zusammen gestellt und dies mit der Version die im Github ist getestet.
Am Anfang hatte ich das gleiche Problem mit einer älteren Version. Habe Dir hier nochmal eine Liste mit möglichen Fehlerquellen und Lösungsmöglichkeiten zusammen gestellt. Diese ist auch in dem kleinen Testprojekt vorhanden.
Viele Grüße Jan |
AW: PDF-Dateien drucken (viele)
Wir haben so eine ähnliche Situation.
Bekommen viele PDF-Belege per email-Anhang die wir dann im Stapel ausdrucken. Wir können da auch sumatra empfehlen, was wir auch auf Empfehlung von Holger Klemt schon länger einsetzen. das ganze findet man auf sumatrapdfreader.org. Da gibt es auch eine Doku zu der Commandline. Bei uns sieht es dann ungefähr so aus:
Delphi-Quellcode:
procedure TF1.belege_drucken;
var adrucker: string sumatra_pfad : string; commandline : string; adateiname: string; begin adrucker := (dein Drucker); adateinmae := (deine PDF-Datei); sumatra_pfad := 'C:\Sumatra\SumatraPdf.exe'; commandline := '-print-to ' + '"' + adrucker + '" "' + adateiname + '"'; ShellExecute(0,'open',pchar(sumatra_pfad),pchar(commandline),nil,SW_ShowNormal); |
AW: PDF-Dateien drucken (viele)
Zitat:
Wir setzen pdfbox ein und sind hier sehr zufrieden (verglichen mit der Delphi-Native Komponente die wir vor Jahren hatten). Deshalb kann ich nur davon sprechen, das diese eine Lösungsmöglichkeit wäre. |
AW: PDF-Dateien drucken (viele)
Die Frage war bei uns dann eine andere..
Müssen wir die Dateien eigentlich alle drucken? Wir speichern PDF-Belege mittlerweile alle in der firebird-Datenbank als Blob.. Man hat dann u.a. auch nicht mehr so viele Dateien, sondern insgesamt nur noch eine. Kommt halt auf die Bedürfnisse des Anwenders an ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz