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 3 von 3     123   
Benutzerbild von himitsu
himitsu

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

AW: PDF-Dateien drucken (viele)

  Alt 18. Nov 2022, 10:59
Wir speichern PDF-Belege mittlerweile alle in der firebird-Datenbank als Blob..
Das wird hier aber nicht helfen.
OK, man könnte die Datenbank auf viele USB-Sticks, SD-Cards oder große RFDI-Chips kopieren.
Oder in übergroße QR-Codes und die dann ausdrucken.

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.


Die Begleitpapiere müssen also so oder so.
Eventuell könne man sowas auch direkt auf die Verpackung drucken. (innen und außen)
https://www.bluhmsysteme.com/oberfla...schriften.html
Bei Google suchenmobile Handdrucker
Bei Google suchenPrinCube Bei Google suchenMBrush

Und wenn Unterlagen für Kommissionierung und Begleitung nicht die Selben sind, jene als digitale Medien, ala ESL/RFID/...
Einige der ESL-Tags, welche wir demnächst einführen, haben RFID direkt integiert, welches ber Funk umgeschrieben werden kann.
Aktuell nutzen wir Barcodes auf dem ePaper, aber RFID hätte zum elektronischen Lesen einige Vorteile. (kein optischer Platzbedarf und einfacher/schneller/sicherer lesbar)




Kommt halt auf die Bedürfnisse des Anwenders an
Bei uns genau andersrum. Es war mal Alles in der DB und ist nun in einzelnen Dateien.
BLOB als Datei, aber natürlich der restliche Verwaltungs-Datensatz in der DB.

Und teilweise so, dass bestimmte Dateien auf WORM-Laufwerke können.

Wegen besserem Backup und Datensicherheit und z.B. WORM (Write Once Read Many) wegen Datenschutz- und steuerrechtlichen Verordnungen.
Gut, noch besser wäre es, wenn man auch einige Zusatzinfos noch bei den Dateien mit ablegt ... falls mal die Software/DB kaputt ist und es dort kein Funktionierendes Backup gibt, dann Zuordnungsinfos zu/bei/an/in der jeweiligen Datei.




ALLES in einer DB, dann vieleicht besser noch eine Partitionierung der DB vornehmen.
z.B. jährliche BLOBs je in einer DB-Datei, welche nach dem JAHR nicht/kaum noch verändert wird.
Ein Backup der Festplatte wird sich freuen, wenn sich nicht ständig überall immer wieder alles im Dateisystem ändert.
$2B or not $2B

Geändert von himitsu (18. Nov 2022 um 11:57 Uhr)
  Mit Zitat antworten Zitat
josef-b

Registriert seit: 6. Jun 2004
Ort: bei Jena in Thüringen
95 Beiträge
 
Delphi 11 Alexandria
 
#22

AW: PDF-Dateien drucken (viele)

  Alt 18. Nov 2022, 11:25
Ja dann würde ich es wohl mit sumatra machen.
  Mit Zitat antworten Zitat
rokli

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

AW: PDF-Dateien drucken (viele)

  Alt 18. Nov 2022, 13:04
Herzlichen Dank für das große Interesse!

@Jan
1.
Habe Deine Vorgaben eingebaut und bekomme die Fehlermeldung

[Content]
Fehler: The File: does not exist

Daraufhin hab ich mal eine bestehende PDF Datei ins Zielverzeichnis kopiert und NEW.PDF genannt.

2.
Das Log lässt sich leider nicht kompilieren.
Da meldet der Kompiler: [dcc32 Fehler] FMain.pas(413): E2362 Auf protected-Symbol TGS_Api.StdOut kann nicht zugegriffen werden

3.
Dein Test-Programm habe ich erfolgreich nutzen können. Als nächstes werde ich die Logiken mal in mein Testprogramm übernehmen.

Bis dann.
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
itblumi

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

AW: PDF-Dateien drucken (viele)

  Alt 18. Nov 2022, 13:21
zu 2. Entschuldige bitte das hatte ich nur im Forum geschrieben und nicht kompiliert, es muss natürlich StdOutLog heißen.

Ich habe auch noch eine neue Version fertig gemacht in der du mit

if (AConverter.Print('Dateien mit ; getrennt einfügen', 'Windows Drucker Name', False)) then ... oder
if (AConverter.Print(aFiles, 'Windows Drucker Name', False)) then ... die zusammen gefügte Datei direkt Drucken kannst. Falls der Drucker nicht gefunden werden kann, dann zeigt Ghostscript den Windows Druck Dialog an in dem man einen Drucker auswählen kann. Falls er ihn findet schickt er sofort den Druckauftrag zum Drucker.
Jan
Ein neuer Tag bringt so einiges mit sich. Was auch immer es ist, es bleibt ein kleines Abenteuer.
  Mit Zitat antworten Zitat
rokli

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

AW: PDF-Dateien drucken (viele)

  Alt 18. Nov 2022, 13:38
Hi Jan,

aus deinem Test-Coding:
1. Bitte passe vorher den Suchpfad in den Projekt optionen an damit er die Lib findet ... ich habe die *.libs immer dem Projekt hinzugefügt.

in welchen Parameter kann ich das denn eintragen?
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
itblumi

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

AW: PDF-Dateien drucken (viele)

  Alt 18. Nov 2022, 13:48
So ist es bei mir im XE6, ich hoffe das es sich nicht geändert hat.

Projekt -> Optionen -> Delphi-Compiler

Dann das Ziel: Alle Konfigurationen - Alle Plattformen

Da dürfte dann eine Zeile mit dem "Suchpfad" stehen und dort den Pfad zur Lib eingeben.
Du kannst natürlich auch die Dateien direkt einbinden, dass sollte keinen Unterschied machen.
Jan
Ein neuer Tag bringt so einiges mit sich. Was auch immer es ist, es bleibt ein kleines Abenteuer.

Geändert von itblumi (18. Nov 2022 um 13:50 Uhr)
  Mit Zitat antworten Zitat
rokli

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

AW: PDF-Dateien drucken (viele)

  Alt 18. Nov 2022, 15:18
Hallo alle zusammen!

Die Software von Jan läuft sehr gut.

Mein Fehler in der ersten Version wahr wohl tastächlich, dass ich die Dateinamen in einerm Array zur Verfügung gestellt habe. Es hätte aber wohl eine Semikolon separierte CSV Datei sein sollen, die dann als Input Liste dem AConverter.ToPdf zur Verfügung gestellt werden muss.

Zum Nachvollziehen die beiden wesentlichen Proceduren:

Delphi-Quellcode:
procedure TfrmGsTst.Button1Click(Sender: TObject);
var
  AConverter: TGS_PdfConverter;
  AFiles: string;
begin

   M_Output.Clear;

   sQuelle      := 'C:\Temp\pdffen\quell\';
   sZiel         := 'C:\Temp\pdffen\';
   sDll         := 'C:\Temp\pdffen\';

  AConverter := TGS_PdfConverter.Create(sDll);
  FLogFile := TStringList.Create;
  try
    try
      AConverter.OnStdOut := Log; // komplette Debug Ausgabe
      AConverter.OnStdError := Log;
      {$IFDEF DEBUG}
      AConverter.Debug := True; // Das kannst du später entfernen
      {$ENDIF}
      AFiles :=   sQuelle + '0174163013.pdf;' +
                  sQuelle + '0174163020.pdf;' +
                  sQuelle + '0174164010.pdf;' +
                  sQuelle + '0174164027.pdf;' +
                  sQuelle + '0174164034.pdf;' +
                  sQuelle + '0174164041.pdf;' +
                  sQuelle + '0174164065.pdf;' +
                  sQuelle + '0174164072.pdf;' +
                  sQuelle + '0174164089.pdf;' +
                  sQuelle + '0174164096.pdf;' +
                  sQuelle + '0174164119.pdf;' +
                  sQuelle + '0174165024.pdf;' +
                  sQuelle + '0174165031.pdf;' +
                  sQuelle + '0174165048.pdf;' +
                  sQuelle + '0174165055.pdf;' +
                  sQuelle + '0174165062.pdf;' +
                  sQuelle + '0174166014.pdf;' +
                  sQuelle + '0174167011.pdf;' +
                  sQuelle + '0174167028.pdf;' +
                  sQuelle + '0174167035.pdf;' +
                  sQuelle + '0174167042.pdf;' +
                  sQuelle + '0174167059.pdf;' +
                  sQuelle + '0174167066.pdf;' +
                  sQuelle + '0174167073.pdf;' +
                  sQuelle + '0174167080.pdf;' +
                  sQuelle + '0174167097.pdf;' +
                  sQuelle + '0174167103.pdf;' +
                  sQuelle + '0174167110.pdf;' +
                  sQuelle + '0174167127.pdf;' +
                  sQuelle + '0174167134.pdf;' +
                  sQuelle + '0174167141.pdf;' +
                  sQuelle + '0174167158.pdf;' +
                  sQuelle + '0174168018.pdf;' +
                  sQuelle + '0174168025.pdf;' +
                  sQuelle + '0174168032.pdf;' +
                  sQuelle + '0174169015.pdf;' +
                  sQuelle + '0174170011.pdf';

      if (not AConverter.ToPdf(AFiles.Split([';']), sZiel + 'New01.pdf', False)) then
      begin
        ShowMessage('Fehler: ' + AConverter.LastErrors);
        FLogFile.SaveToFile(sZiel + 'output.log');
      end else
        ShowMessage('Convertierung abgeschlossen!');

    except
      on E: Exception do
        ShowMessage('Fehler: ' + E.Message);
    end;
  finally
    FreeAndNil(AConverter);
    FreeAndNil(FLogFile);
  end;
end;

procedure TfrmGsTst.Log(const AStr: string);
begin
  (* hier bekommst du die gefilterten informationen + debug information *)

  // als output in einem Memo
  M_Output.Lines.Text := M_Output.Lines.Text + AStr;
  // als output in eine Datei
  FLogFile.Text := FLogFile.Text + AStr;
  // scroll down
  M_Output.SelStart := Length(M_Output.Lines.Text);
  M_Output.SelLength := 0;
end;
Meinen besondereren Dank and Jan, der sich viel Mühe mit mir gegeben hat.

Allen ein schönes Wochenende

Beste Grüße
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 himitsu
himitsu

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

AW: PDF-Dateien drucken (viele)

  Alt 18. Nov 2022, 15:32
Statt der vielen sQuelle hätte ich ein Zeichen (z.B. *) und dann Replace gemacht,
aber wozu erst zusammen und dann split, wenn man es auch gleich fertig haben kann.

Delphi-Quellcode:
  AFiles: TArray<string>;
begin

      AFiles := [sQuelle + '0174163013.pdf',
                 sQuelle + '0174163020.pdf',
                 sQuelle + '0174164010.pdf',
                 sQuelle + '0174164027.pdf',
                 sQuelle + '0174164034.pdf',
                 ...
                ];
oder falls später stückchenweise, via Schleife und so.
Delphi-Quellcode:
      AFiles := AFiles + [sQuelle + '0174163013.pdf'];
      ...
      AFiles := AFiles + [sQuelle + '0174163020.pdf', sQuelle + '0174164010.pdf'];
      ...

Delphi-Quellcode:
M_Output.Lines.Add(AStr); // geht auch mit Zeilenumbrüchen drin (und auch unnötig erst ALLEN Text rauszuholen und wieder neu reinzuzun)
// und SelStart ist auch nicht nötig, weil macht Add schon
$2B or not $2B

Geändert von himitsu (18. Nov 2022 um 15:36 Uhr)
  Mit Zitat antworten Zitat
itblumi

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

AW: PDF-Dateien drucken (viele)

  Alt 18. Nov 2022, 15:41
Delphi-Quellcode:
M_Output.Lines.Add(AStr); // geht auch mit Zeilenumbrüchen drin (und auch unnötig erst ALLEN Text rauszuholen und wieder neu reinzuzun)
// und SelStart ist auch nicht nötig, weil macht Add schon
Das ist richtig, aber leider liefert Ghostscript auch manchmal nur ein Stück von einer Zeile und dann ist die Ausgabe mehrfach unterteilt.
Deswegen ist das Ganze über die Text property gelöst.

Edit: Das einzige was ich noch dagegen machen könnte um dies benutzerfreundlich zu gestalten, wäre einen internen Text Puffer zu verwenden und nur ganze Zeilen auszugeben. Das werde ich mir gleich mal auf meine ToDo Liste schreiben.
Jan
Ein neuer Tag bringt so einiges mit sich. Was auch immer es ist, es bleibt ein kleines Abenteuer.

Geändert von itblumi (18. Nov 2022 um 15:47 Uhr)
  Mit Zitat antworten Zitat
rokli

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

AW: PDF-Dateien drucken (viele)

  Alt 28. Nov 2022, 07:17
Hallo Zusammen!

Die Lösung von itblumi läuft sehr gut!

Was nicht funktionierte, war die Angabe eines UNC-Pfades für den Quell-Ort der zusammen zu fassenden PDF-Dokumente. Aber über ein gemapptes Laufwerk kein Problem.

Insgesamt ist das eine gute, auch sehr perfomante Lösung für unser Druckproblem.

Beste Grüße
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
Antwort Antwort
Seite 3 von 3     123   


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 22:17 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