Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Delphi Drucken unter Android (https://www.delphipraxis.net/212047-drucken-unter-android.html)

tkhandel 8. Dez 2022 09:44

Drucken unter Android
 
Hallo,

ich habe bisher unter Windows mit Fastreport gearbeitet bei der Anwendungsentwicklung für Android
steht mir weder die VCL noch die FMX Version zur Verfügung. Womit kann man Drucken?

Es werden hauptsächlich Kassenbons gedruckt.

schaumermal 8. Dez 2022 17:16

AW: Drucken unter Android
 
Dies würde mich auch brennend interessieren.
Ich dachte dies geht vielleicht mit FastReport (Client/ Server (muss separat erworben werden)).
Leider bin ich hier keinen Schritt weiter :-(

tkhandel 8. Dez 2022 20:46

AW: Drucken unter Android
 
Laut Matrix nicht, hatte mir schon fastreport fmx gekauft.
Wie kann man bei einem Marktanteil von 71,55 Prozent (Android) und 27,8 Prozent (Apples iOS)
ein Produkt fmx fähig bezeichnen ?

himitsu 8. Dez 2022 21:13

AW: Drucken unter Android
 
FMX heißt erstmal nichts.

zusätzlich sind die unterstürtzen Plattformen entscheidend.

juergen 8. Dez 2022 21:56

AW: Drucken unter Android
 
Vielleicht hilft dieser Tipp von SO weiter. Zu der Print-Library von Winsoft kann ich aber nichts sagen.

tggmx 9. Dez 2022 22:10

AW: Drucken unter Android
 
Die einfachste Lösung wäre es ESC-Sequenzen direkt über Bluetooth an den Drucker zu schicken.
Für die diese Lösung brauchst du keine zusätzlichen Komponenten.

tkhandel 10. Dez 2022 07:27

AW: Drucken unter Android
 
Danke, das mit den ESC denke ich wird der beste weg sein. Hat da jemand ein Beispiel
wie ich das umsetzen kann. Der Drucker ist ein Bixolon Bon-Drucker.
Danke euch!

jaenicke 11. Dez 2022 13:23

AW: Drucken unter Android
 
Über Bluetooth ist das nicht so einfach. Einfacher wäre ein Netzwerkdrucker, mit dem man eine einfache Netzwerkverbindung z.B. über W-LAN aufbauen kann. Dem kann man dann einfach die Escapesequenzen als Text schicken. Am besten klappt das allerdings mit Epson-Druckern, die direkt XML unterstützen (ePOS Print XML), weshalb die auch sehr verbreitet sind bei Verwendung mit Tablets. Per XML habe ich so schon problemlos drucken können.

In jedem Fall brauchst du dafür die Dokumentation des Herstellers, damit du weißt, was du schicken musst.

Da Android mittlerweile auch eine ganz gute Druckerschnittstelle hat, ist die aber auch sinnvoll nutzbar. Die bereits erwähnte Bibliothek von Winsoft ist dafür eine Möglichkeit und wurde ja auch schon bei Embarcadero vorgestellt:
Easily Print From Android Devices Using Winsoft’s Powerful Android Printing Library For Delphi
Ich habe diese vor einiger Zeit mal ausprobiert, als ich beruflich noch mit Kassen zu tun hatte. Das sah vielversprechend aus.

schaumermal 11. Dez 2022 20:46

AW: Drucken unter Android
 
Gibt es wirklich keine Möglichkeit "Reports" (also Berichte, Kassenbons, etc.) auf einem mobilen Geräte (Android und IOS) zu erzeugen und dann z.B. per Mail zu versenden?
In der Regel werden die Daten ja auf dem mobilen Gerät erzeugt und in einer Datenbank gespeichert.
Jetzt müsste man hier auch den Bericht erzeugen und z.B. als PDF speichern und senden können.

tkhandel 16. Dez 2022 12:22

AW: Drucken unter Android
 
Hallo,

auf die Winsoft’s Library war ich auch schon gestoßen hat aber den Nachteil das immer
eine Vorschau kommt und man den Drucker wählen muss (so wie ich das verstehe)
Hinzu kommt das der Bixolon Drucker dort als Drucker nicht nach einer Kopplung erscheint
sondern erst irgendwelche Drucker-Apps installiert werden müssen um den Drucker als
Drucker zu finden.

Ich hab nochmal ein bisschen gegoogelt und probiert bin jetzt soweit das ich in einer
ComboBox alle verbundenen Bluetoothgeräte somit auch den Bixolon auflisten kann und
festlegen kann.

Mit dem folgenden Code:

procedure TfraDrucker.ButtonClick(Sender: TObject);
var
DX:String;
SND:TBytes;
LServices : TBluetoothServiceList;
ServiceGUI, ServiceName:String;
lprintheader : string;
lprintfooter : string;
begin
if LDevice.IsPaired then
begin
LServices := LDevice.GetServices;
SelDevice := LDevice;
serviceGUI :='{00001101-0000-1000-8000-00805F9B34FB}';
serviceName :='SerialPort';
guid:= StringToGUID(servicegui);
end;
{/device}

if (LDevice <> nil) then
begin
LSockect := SelDevice.CreateClientSocket(Guid, true); //was LDevice
if (Assigned(LDevice)) And (Assigned(LSockect)) then
begin
if Not LSockect.Connected then LSockect.Connect
end
else
begin
LSockect := SelDevice.CreateClientSocket(Guid, True);
LSockect.Connect;
end;
lprintheader := lprintheader + ' ESC@ LF';
if Assigned(LSockect) then
begin
if LSockect.Connected then
begin
DX := lprintheader;
SND := TEncoding.UTF8.GetBytes(DX);
LSockect.SendData(SND);
Sleep(100);
LSockect.Close; // Connected := False;
end;
end;
end;


ich kann den Drucker anschließend ansprechen, der Drucker reagiert mit Empfangsmeldung macht alle 4 Clicks einen LF.
Wie muss ich die Steuerzeichen übertragen? ASCII, HEX, Trennzeichen dazwischen oder nur leerzeichen ?
Wie kann ich einen Text senden?

Fragen über Fragen

Danke für eure Bemühungen

Jürgen


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:21 Uhr.
Seite 1 von 3  1 23      

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