Open Benziner opened 6 months ago
Hi,
der erste Aufruf war schon korrekt und lieferte auch ein PDF zurück:
Swagger kann dies nur nicht anzeigen. Daher ist soweit erstmal alles korrekt.
Postman zeigt es bspw. korrekt an. Es gibt bestimmt auch noch andere Tools oder evtl. auch BrowserPlugins, die das können.
Viel Erfolg weiterhin
Danke! Das beantwortet aber leider nur teilweise meine Fragen:
zu Printpdf: Ist es auch möglich die PDF direkt auf dem Server zu speichern? Also die API Funktion wird von einem Client ausgeführt, da werden offensichtlich Backendprozesse des Servers benutzt, kann der Server dann die PDF auch direkt auf einem Verzeichnis abspeichern? Oder ist das so gedacht, dass der Client die PDF als Textrückgabe bekommt und dann die PDF per weiterem Programmcode auf dem CLient gespeichert werden kann?
zu Print: Nutze ich einen Drucker, der beim Client eingerichtet ist, ändert das auch nichts, der Fehler bleibt exakt der selbe. Deshalb meine Frage: Wie funktioniert das? geht das auf einen Drucker auf dem Client oder auf dem Server? Muss ich bei PrintTarget überhaupt einen Druckernamen angeben oder etwas anderes?
Sorry, ich hatte es so verstanden, dass "Print" alternativ zu "PrintPDF" versucht wurde.
zu Printpdf: Hier erfolgt die Rückgabe ausschließlich per API. Speichern in Datei funktioniert hier nicht, sondern nur mit "Print".
zu Print:
Die möglichen Werte für PrintTarget sind hier zu finden: https://demo.slmobile.de/demoApi/Help/ResourceModel?modelName=PrintTarget
"Printer" und "File" sollten hier die beiden Werte sein, die Sie interessieren und auch nur Sinn machen. Verfügbar sind die Drucker des Servers auf dem die API installiert und eingerichtet ist. Mein Vorschlag wäre den Druck als User, der mit der API verbunden ist, auf dem Server mal direkt in der Wawi durchzuführen. Evtl. ist hier kein Standarddrucker hinterlegt. Alternativ können Sie auch hier den Drucker festlegen:
Wenn Sie "File" benutzen, muss die Vorlage so eingerichtet sein, dass die PDF-Datei ohne ein Fenster abgelegt werden kann. Hier ist also der Pfad und der Dateiname (eindeutig) im Formluar anzugeben. Wenn die Ablage fensterlos in der Wawi funktioniert, soll das auch per API möglich sein.
Viele Grüße
Danke das hat das Problem erst mal gelöst. Die Thematik mit dem Standarddrucker wäre bestimmt auch gut in der Doku aufgehoben :). Zum Thema PDF ohne Fenster ablegen möchte ich noch ergänzen (bitte korrigieren Sie mich, wenn ich etwas falsches schreibe), dass es hierbei um die Sonderplatzhalter im Formulareditor von SelectLine geht. Wenn man dort ein Formelfeld auswählt, kann man im Feld "Name" Sonderplatzhalter auswählen, z.B. DateiPDF. Die Onlinehilfe liefert dazu folgendes Beispiel: [V:1000::DateiPDF:2:0::"C:\Temp\"+({.Adressnummer}+"_"+{.Belegnummer}+".pdf")] So werden im Ordner C:\Temp\ automatisch die PDF-Dateien beim Druck in eine Datei abgelegt. ACHTUNG: das habe ich mit der API jetzt noch nicht getestet, ob das entsprechend funktioniert, aber wurde sicher von SelectLine Seite getestet.
Wie funktioniert denn der Print-Aufruf mit PrinterTarget 'Email'? Ich habe versucht eine Rechnung damit zu verschicken. Es kommt aber nur eine HTTP Response 204 No Content zurück. Beim Kunden habe ich eine Email-Adresse angegeben.
Wird denn die Mailadresse des Kunden auch in die E-Mail-Platzhalter in der Druckvorlage übernommen bzw. sind die Platzhalter überhaupt in der Druckvorlage vorhanden?
zu Printpdf:
Folgendes habe ich bereits ausprobiert:![1](https://github.com/selectline-software/selectline-api/assets/30311437/cdb0c782-868b-418a-ac56-5874b56031e1)
in Swagger probiert. Die entsprechende Druckvorlage existiert:![image](https://github.com/selectline-software/selectline-api/assets/30311437/54da760c-39c8-4aa4-a093-19b660d2e29c)
als Rückgabewert bekomme ich jetzt scheinbar die PDF:![image](https://github.com/selectline-software/selectline-api/assets/30311437/2712b0a8-491b-4ab8-9614-d7055f1798a6)
Ist es auch möglich die PDF direkt auf dem Server zu speichern? Also die API Funktion wird von einem Client ausgeführt, da werden offensichtlich Backendprozesse des Servers benutzt, kann der Server dann die PDF auch direkt auf einem Verzeichnis abspeichern? Oder ist das so gedacht, dass der Client die PDF als Textrückgabe bekommt und dann die PDF per weiterem Programmcode auf dem CLient gespeichert werden kann?
zu Print:
da habe ich folgendes probiert:![image](https://github.com/selectline-software/selectline-api/assets/30311437/c6b48094-201d-40cc-a338-e0f1e8a68172)
und bekomme ständig Internal server error zurück:![image](https://github.com/selectline-software/selectline-api/assets/30311437/e05677d3-2647-42bf-a634-495933c72319)
Wenn ich das hier mache (einen Druckernamen hinterlegen, der auf dem Server eingerichtet ist):![image](https://github.com/selectline-software/selectline-api/assets/30311437/b7a73cc4-f25b-42c7-85b6-b97989189fb4)
bekomme ich denselben Fehler:![image](https://github.com/selectline-software/selectline-api/assets/30311437/b328b1b8-3179-43ee-8797-c24f299e1406)
Nutze ich einen Drucker, der beim Client eingerichtet ist, ändert das auch nichts, der Fehler bleibt exakt der selbe. Deshalb meine Frage: Wie funktioniert das? geht das auf einen Drucker auf dem Client oder auf dem Server? Muss ich bei PrintTarget überhaupt einen Druckernamen angeben oder etwas anderes?