Dateien sicher schreiben
Moderator: Moderatoren
- Jan
- Marvin
- Beiträge: 14655
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Dateien sicher schreiben
Moin,
wir kämpfen gerade mit folgendem Problem: Ich erstelle mit Edgars Klasse PDF, die aus einem größeren Hintergrundbild (3-4 MB groß) und individuellem Text bestehen. Die wird auf einem Windows Server 2012 gespeichert, und dann direkt ausgedruckt. Clients sind alle Windows 10.
Nun kommt es seit einiger Zeit vor, das nur der Zusatztext gedruckt wird. Nicht die Grafik. Oftmals klappt der Ausdruck komplett, allzuoft aber eben nur der Text. Wenn man sich dann die PDF auf dem Server ansieht, ist die aber vollständig. Ein manueller Druck aus dem Adobe Reader ist vollständig, aber zu dem Zeitpunkt ist natürlich auch schon wesentlich mehr Zeit vergangen.
Mein Verdacht ist, das es ein Caching-Problem gibt. Das die PDF zum Zeitpunkt des Druckes noch nicht komplett auf die Festplatte geschrieben ist.
Edgar hat die Druckroutine mit seiner aktuellen Klasse umgeschrieben. Aber auch die Verwendung der alten Version gibt den gleichen Fehler. Das können wir also ausschließen.
Gibt es eine Möglichkeit sicherzustellen, das eine Datei komplett auf dem Server weggeschrieben ist (sozusagen ein File-Commit)? Oder vor dem Drucken festzustellen, ob die nun komplett geschrieben worden ist, und eben so lange zu warten?
Jan
wir kämpfen gerade mit folgendem Problem: Ich erstelle mit Edgars Klasse PDF, die aus einem größeren Hintergrundbild (3-4 MB groß) und individuellem Text bestehen. Die wird auf einem Windows Server 2012 gespeichert, und dann direkt ausgedruckt. Clients sind alle Windows 10.
Nun kommt es seit einiger Zeit vor, das nur der Zusatztext gedruckt wird. Nicht die Grafik. Oftmals klappt der Ausdruck komplett, allzuoft aber eben nur der Text. Wenn man sich dann die PDF auf dem Server ansieht, ist die aber vollständig. Ein manueller Druck aus dem Adobe Reader ist vollständig, aber zu dem Zeitpunkt ist natürlich auch schon wesentlich mehr Zeit vergangen.
Mein Verdacht ist, das es ein Caching-Problem gibt. Das die PDF zum Zeitpunkt des Druckes noch nicht komplett auf die Festplatte geschrieben ist.
Edgar hat die Druckroutine mit seiner aktuellen Klasse umgeschrieben. Aber auch die Verwendung der alten Version gibt den gleichen Fehler. Das können wir also ausschließen.
Gibt es eine Möglichkeit sicherzustellen, das eine Datei komplett auf dem Server weggeschrieben ist (sozusagen ein File-Commit)? Oder vor dem Drucken festzustellen, ob die nun komplett geschrieben worden ist, und eben so lange zu warten?
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Bertram Hansen
- Foren-Moderator
- Beiträge: 1015
- Registriert: Di, 27. Sep 2005 8:55
- Wohnort: 51379 Leverkusen
- Hat sich bedankt: 28 Mal
- Danksagung erhalten: 20 Mal
- Kontaktdaten:
Re: Dateien sicher schreiben
Jan,
nur so aus dem Bauch heraus.
Kannst du nicht vor dem Drucken versuchen die PDF exklusiv zu öffnen.
nur so aus dem Bauch heraus.
Kannst du nicht vor dem Drucken versuchen die PDF exklusiv zu öffnen.
Gruß Bertram
http://www.tobax.de
Mitglied der XUG Cologne
Mitglied der XUG Osnabrück
Beisitzer des Deutschsprachige Xbase-Entwickler e.V.
Solange Kakaobohnen an Bäumen wachsen ist Schokolade Obst!
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Dateien sicher schreiben
Jan,
ich nehme mal an, dass Du auch ein ::EndDoc(.f.) gefolgt von einem ::Destroy() für Dein PDF-Objekt machst, bevor Du es anzeigen lässt - oder?
Viele Grüße,
Martin
ich nehme mal an, dass Du auch ein ::EndDoc(.f.) gefolgt von einem ::Destroy() für Dein PDF-Objekt machst, bevor Du es anzeigen lässt - oder?
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Jan
- Marvin
- Beiträge: 14655
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Dateien sicher schreiben
Hallo Martin,
nein. Weil nach dem :create() direkt das rint() folgt. Bzw. ich habe da mal eine Verzögeurng von 3 Sekunden eingebaut, um dem Server etwas Zeit zum Speichern zu geben. Die Verbesserung war aber nur minimal.
Die Idee ist aber interessant. Ich werde mal schauen, ob ich damit was anfangen kann.
Jan
nein. Weil nach dem :create() direkt das rint() folgt. Bzw. ich habe da mal eine Verzögeurng von 3 Sekunden eingebaut, um dem Server etwas Zeit zum Speichern zu geben. Die Verbesserung war aber nur minimal.
Die Idee ist aber interessant. Ich werde mal schauen, ob ich damit was anfangen kann.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Dateien sicher schreiben
Bei mir hatte es damals geholfen. Ich schreibe tausende zweiseitige PDFs und versende die im Anschluss per Mail.
Viele Grüße,
Martin
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Jan
- Marvin
- Beiträge: 14655
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Dateien sicher schreiben
Bertram,
vor dem Drucken öffne ich die Datei per FOpen(), FRead(), FClose(), um die Größeneinstellungen des Dokumentes zu erhalten (das kann DIN A 4 oder DIN A 6 sein).
Jan
vor dem Drucken öffne ich die Datei per FOpen(), FRead(), FClose(), um die Größeneinstellungen des Dokumentes zu erhalten (das kann DIN A 4 oder DIN A 6 sein).
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Jan
- Marvin
- Beiträge: 14655
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Dateien sicher schreiben
Martin,
das versenden der Mail im Anschluß klappt auch. Aber auch dann ist ja schon ein wenig mehr Zeit vergangen.
Und im Gegensatz zu Deinen PDF (ich setze das jetzt mal einfach voraus) sind meine umfangreicher. Durch das Hintergrundfoto. Und nur das fehlt in den direkten Ausdrucken. Der normale Text ist da, inkl. mehrere Dutzend "gemalter" Linien im Barcode.
Jan
das versenden der Mail im Anschluß klappt auch. Aber auch dann ist ja schon ein wenig mehr Zeit vergangen.
Und im Gegensatz zu Deinen PDF (ich setze das jetzt mal einfach voraus) sind meine umfangreicher. Durch das Hintergrundfoto. Und nur das fehlt in den direkten Ausdrucken. Der normale Text ist da, inkl. mehrere Dutzend "gemalter" Linien im Barcode.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Dateien sicher schreiben
Nicht unbedingt!
Ich nutze eine PDF-Vorlage (wie Du), in die ich Text einmische!
Die PDF-Vorlage kann Text enthalten (wenn sie ordentlich aus der Druckerei kommt) - sie kann aber auch zwei ganzseitige Grafiken enthalten (wenn das Papier manuell gescannt und als PDF gespeichert wurde).
Viele Grüße,
Martin
Ich nutze eine PDF-Vorlage (wie Du), in die ich Text einmische!
Die PDF-Vorlage kann Text enthalten (wenn sie ordentlich aus der Druckerei kommt) - sie kann aber auch zwei ganzseitige Grafiken enthalten (wenn das Papier manuell gescannt und als PDF gespeichert wurde).
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Jan
- Marvin
- Beiträge: 14655
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Dateien sicher schreiben
Martin,
ich habe mich vertan. Doch, das PDF-Objekt wird nach dem Erzeugen der PDF destroyed und genillt, danach erst wird ein neues Druck-Objekt erstellt, mit dem die gespeicherte PDF dann gedruckt wird.
Jan
ich habe mich vertan. Doch, das PDF-Objekt wird nach dem Erzeugen der PDF destroyed und genillt, danach erst wird ein neues Druck-Objekt erstellt, mit dem die gespeicherte PDF dann gedruckt wird.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Dateien sicher schreiben
Jan,
worauf ich hinaus wollte: Mach ::EndDoc( .f. ) und öffne nach dem ::Destroy() die Datei zum Anzeigen manuell.
Viele Grüße,
Martin
worauf ich hinaus wollte: Mach ::EndDoc( .f. ) und öffne nach dem ::Destroy() die Datei zum Anzeigen manuell.
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Jan
- Marvin
- Beiträge: 14655
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Dateien sicher schreiben
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Dateien sicher schreiben
Wenn Du dein fertiges PDF anzeigst, dann machst Du ja wahrscheinlich ein :EndDoc( .t. ) - oder? Damit wird das sofort angezeigt.
In dem Fall ist es besser, das PDF zu erzeugen, alle Objekte wegzuschmeißen und danach ein Objekt zu erzeugen, das zur Anzeige der Datei genutzt wird (also die Datei von der Platte lädt).
Viele Grüße,
Martin
In dem Fall ist es besser, das PDF zu erzeugen, alle Objekte wegzuschmeißen und danach ein Objekt zu erzeugen, das zur Anzeige der Datei genutzt wird (also die Datei von der Platte lädt).
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Jan
- Marvin
- Beiträge: 14655
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Dateien sicher schreiben
Martin,
ich hatte mich doch oben korrigiert und geschrieben, das ich das PDF-Erzeugungsobjekt destroye und nille, und dann erst das PDF-Druckobjekt erstelle. Genau das, was Du ganz oben vorgeschlagen hattest.
Von daher verstehe ich Deinen erneuten Vorschlag nicht. Auch nach Deiner Erklärung nicht.
Jan
ich hatte mich doch oben korrigiert und geschrieben, das ich das PDF-Erzeugungsobjekt destroye und nille, und dann erst das PDF-Druckobjekt erstelle. Genau das, was Du ganz oben vorgeschlagen hattest.
Von daher verstehe ich Deinen erneuten Vorschlag nicht. Auch nach Deiner Erklärung nicht.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Dateien sicher schreiben
Ach so!
Ich dachte, Du hast das Problem bei der Anzeige des frisch erstellten Dokumentes. Dann warte doch einfach 5 Minuten bis zum Ausdrucken - aber ähnliches machst Du ja schon.
Viele Grüße,
Martin
Ich dachte, Du hast das Problem bei der Anzeige des frisch erstellten Dokumentes. Dann warte doch einfach 5 Minuten bis zum Ausdrucken - aber ähnliches machst Du ja schon.
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Jan
- Marvin
- Beiträge: 14655
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Dateien sicher schreiben
Martin,
naja, 5 Minuten warten kommt nicht so gut, wenn der Kunde daneben steht und wartet. Ansonsten hätte ich die Wartezeit ja auch selber schon angehoben.
Ich denke das geht nur über irgendwelche Servereinstellungen oder anderes Sicherstellen, das die Datei iwrklich sofort komplett weggeschrieben wird.
Jan
naja, 5 Minuten warten kommt nicht so gut, wenn der Kunde daneben steht und wartet. Ansonsten hätte ich die Wartezeit ja auch selber schon angehoben.
Ich denke das geht nur über irgendwelche Servereinstellungen oder anderes Sicherstellen, das die Datei iwrklich sofort komplett weggeschrieben wird.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2470
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Dateien sicher schreiben
Jan,
wie wäre es mit local speichern. drucken und auf server kopieren und local löschen ?
wie wäre es mit local speichern. drucken und auf server kopieren und local löschen ?
Gruß
Klaus
Klaus
- Jan
- Marvin
- Beiträge: 14655
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Dateien sicher schreiben
Hallo Klaus,
nette Idee. Die mich erstmal positiv angesprochen hat. Aber die einen kompletten Umbau der Logik bedeuten würde.
Das gesamte Programm ist so gebaut, das Kundenbelege beim Ausdruck immer als PDF gespeichert werden. Das betrifft Angebote, Auftragsbestätigungen, Rechnungen, die hier relevanten Gutscheine, und so manches mehr. Das heißt, es gibt diverse Funktionen, die die entsprechenden PDF generieren und speichern. Die Druckfunktion liegt komplett woanders im Code und wird dann nur bei Bedarf aufgerufen. Entweder nach der Erzeugung der PDF, oder später bei einem Nachdruck, oder bei einem Mailversand des Dokumentes. Drucken und mailen gehen immer auf die gespeicherte PDF, niemals in eine wirkliche Druckfunktion.
Wenn ich also erst lokal speichere, und erst später auf den Server schiebe, dann muß ich das irgendwie abstimmen mit einem eventuell nachfolgenden Druckauftrag. Das wird komliziert. Vor Allem, weil meine Vorgänger in dem Projekt nun ja, sagen wir mal, etwas unordentlich gearbeitet haben was Funktionsaufrufe, Variablen, usw. betrifft. Ich muß da mit einer Menge Altlasten klar kommen.
Ich werde mir das aber mal anschauen, vielleicht kann ich das mit irgend einer Paramterübergabe (mein Kunde hast Parameterübergaben, weil er die nicht versteht) doch irgendwie halbwegs schmerzfrei testen.
Jan
nette Idee. Die mich erstmal positiv angesprochen hat. Aber die einen kompletten Umbau der Logik bedeuten würde.
Das gesamte Programm ist so gebaut, das Kundenbelege beim Ausdruck immer als PDF gespeichert werden. Das betrifft Angebote, Auftragsbestätigungen, Rechnungen, die hier relevanten Gutscheine, und so manches mehr. Das heißt, es gibt diverse Funktionen, die die entsprechenden PDF generieren und speichern. Die Druckfunktion liegt komplett woanders im Code und wird dann nur bei Bedarf aufgerufen. Entweder nach der Erzeugung der PDF, oder später bei einem Nachdruck, oder bei einem Mailversand des Dokumentes. Drucken und mailen gehen immer auf die gespeicherte PDF, niemals in eine wirkliche Druckfunktion.
Wenn ich also erst lokal speichere, und erst später auf den Server schiebe, dann muß ich das irgendwie abstimmen mit einem eventuell nachfolgenden Druckauftrag. Das wird komliziert. Vor Allem, weil meine Vorgänger in dem Projekt nun ja, sagen wir mal, etwas unordentlich gearbeitet haben was Funktionsaufrufe, Variablen, usw. betrifft. Ich muß da mit einer Menge Altlasten klar kommen.
Ich werde mir das aber mal anschauen, vielleicht kann ich das mit irgend einer Paramterübergabe (mein Kunde hast Parameterübergaben, weil er die nicht versteht) doch irgendwie halbwegs schmerzfrei testen.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Werner_Bayern
- Der Entwickler von "Deep Thought"
- Beiträge: 2126
- Registriert: Sa, 30. Jan 2010 22:58
- Wohnort: Niederbayern
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 75 Mal
Re: Dateien sicher schreiben
Code: Alles auswählen
if file(MAILVERZEICHNIS + cPDF_Datei)
sleep(30)
for i := 1 to 20
if .not. (nDatei := fopen(MAILVERZEICHNIS + cPDF_Datei, FO_READ+FO_DENYREAD)) == -1 // Datei konnte erfolgreich geöffnet werden
fclose(nDatei)
exit
endif
sleep(30)
next i
sleep(30)
endif
if .not. file(MAILVERZEICHNIS + cPDF_Datei) .or. i == 21
hinweis("PDF-Druck", "Bitte kurz warten, bis der PDF-Druck abgeschlossen ist...")
endif
es grüßt
Werner
<when the music is over, turn off the lights!>
Werner
<when the music is over, turn off the lights!>
- Jan
- Marvin
- Beiträge: 14655
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Dateien sicher schreiben
Hallo Werner,
ein FOpen() etc. mache ich schon (siehe weiter oben). Aber die mehrfachen Sleep(30) sind einfach nicht machbar. So lange wartet kein Mitarbeiter im kundenstreß auf den Ausdruck, geschweige denn ein wartender Kunde in der Schlange.
Ich kann aber mal schauen, ob ein kurzes Warten nach dem FClose() helfen könnte. Vorher habe ich ja schon eine Verzögerung eingebaut.
Jan
ein FOpen() etc. mache ich schon (siehe weiter oben). Aber die mehrfachen Sleep(30) sind einfach nicht machbar. So lange wartet kein Mitarbeiter im kundenstreß auf den Ausdruck, geschweige denn ein wartender Kunde in der Schlange.
Ich kann aber mal schauen, ob ein kurzes Warten nach dem FClose() helfen könnte. Vorher habe ich ja schon eine Verzögerung eingebaut.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Werner_Bayern
- Der Entwickler von "Deep Thought"
- Beiträge: 2126
- Registriert: Sa, 30. Jan 2010 22:58
- Wohnort: Niederbayern
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 75 Mal
Re: Dateien sicher schreiben
Würd ich auch nie programmieren!Jan hat geschrieben:Aber die mehrfachen Sleep(30) sind einfach nicht machbar. So lange wartet kein Mitarbeiter im kundenstreß auf den Ausdruck, geschweige denn ein wartender Kunde in der Schlange.
Wir sprechen hier von erstmal 30 ms, nur wenn dann noch nicht die Datei da oder komplett geschrieben ist, wird max. 20x a 30 ms gewartet. Du kannst Dir die Schleife ja anpassen, mach halt bloß 5 Durchgänge. Wir sprechen bei 20 Durchläufen von 630 ms, das sind 6,3 Sekunden - wenn es ein Geschwindigkeitsproblem gibt! Nur dann.
Also, ist das Netzwerk ok und der Fileserver "schnell" genug, hält der Code nichts auf, ansonsten wartet er max. 6,6 Sekunden, bis eine Meldung ausgegeben wird. Wenn Du i anpasst, dann halt entsprechend schneller.
Ich denke, besser kannst Du das Problem softwaremäßig in Deiner Applikation nicht bedienen - bis mich jemand vom Gegenteil überzeugt.
es grüßt
Werner
<when the music is over, turn off the lights!>
Werner
<when the music is over, turn off the lights!>
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Dateien sicher schreiben
Frage : was für ein Drucker und wie viel Speicher (RAM) hat der Drucker ?Jan hat geschrieben:... die aus einem größeren Hintergrundbild (3-4 MB groß) und individuellem Text bestehen.
ich hatte früher (v1.5x) mal ein ähnliche Problem mit Word Dateien die ich per Runshell() gedruckt hatte.
es fehlten teilweise die Grafiken aber der Text war meistens komplett. Die Doc war immer komplett.
da es viele DOC Dateien waren kamen wir auf die Idee den Drucker (Kyrocera) aufzurüsten mit mehr RAM und danach gab es keine Problem mehr.
gruss by OHR
Jimmy
Jimmy
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Dateien sicher schreiben
wie wäre es mit PDF auf dem servr schreiben und schließen,
danach auf lokale platte kopieren und von dort drucken ?
danach auf lokale platte kopieren und von dort drucken ?
Gruß
Hubert
Hubert
- mikehoffmann
- Rekursionen-Architekt
- Beiträge: 133
- Registriert: Mo, 21. Sep 2015 16:22
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 18 Mal
Re: Dateien sicher schreiben
Google mal nach der API-Funktion "FlushFileBuffers". Da findeste auch einen Hinweis auf CreateFile mit FILE_FLAG_NO_BUFFERUNG flag.
Damit kannste sicherstellen, dass Deine Daten schnellstmöglich da ankommen, wo sie hinsollen.
Wenn's dann noch nicht klappt, hast Du ein anderes Problem.
Viele Grüße
Michael
Damit kannste sicherstellen, dass Deine Daten schnellstmöglich da ankommen, wo sie hinsollen.
Wenn's dann noch nicht klappt, hast Du ein anderes Problem.
Viele Grüße
Michael
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2517
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: Dateien sicher schreiben
Hallo Jan
ich hatte vor Jahren die selben Probleme, besonders wenn grössere BitMaps enhalten waren, ich hatte dann deshalb auf L&L gewechselt und seitdem auch mit 28MPix Bilder keine Probleme mehr. Edgar's Klasse ist ja eigentlich nur ein Wrapper auf Quickpdf mit den dazugehörigen Sorgen.
Vielleicht würde dir ja derselbe Schrift (zu L&L) auch weiterhelfen. ..... Auf jeden Fall ist die Gestaltung eines DOC's viel viel einfacher und schneller und Tel. Support ist super und in Deutsch .....
Cu Carlo
ich hatte vor Jahren die selben Probleme, besonders wenn grössere BitMaps enhalten waren, ich hatte dann deshalb auf L&L gewechselt und seitdem auch mit 28MPix Bilder keine Probleme mehr. Edgar's Klasse ist ja eigentlich nur ein Wrapper auf Quickpdf mit den dazugehörigen Sorgen.
Vielleicht würde dir ja derselbe Schrift (zu L&L) auch weiterhelfen. ..... Auf jeden Fall ist die Gestaltung eines DOC's viel viel einfacher und schneller und Tel. Support ist super und in Deutsch .....
Cu Carlo
Valar Morghulis
Gruss Carlo
Gruss Carlo
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Dateien sicher schreiben
gute Idee !mikehoffmann hat geschrieben:Google mal nach der API-Funktion "FlushFileBuffers". Da findeste auch einen Hinweis auf CreateFile mit FILE_FLAG_NO_BUFFERUNG flag.
du solltest noch ein Beispiel bringen wie man das macht den API ist nicht jedermanns Sache.
gruss by OHR
Jimmy
Jimmy