USB Label Drucker

Visi

Mitglied
Hallo Forum,

ich habe einen Dymo Labeldrucker der per USB an meinem Laptop dran ist, ich möchte mit einem Java Programm Daten aus einer Access Datenbank filtern und dann ausdrucken. Für eine einfache Strukturierung habe ich gesorgt (jedes Attribut in einer Spalte). Auf dem Etikett sollte auch sowas wie eine Tabelle ausgedruckt werden, also nicht nur Buchstaben und Zahlen sondern irgendwie ein Bild :/


Meine Probleme sind bei der Ansprechung des Labeldruckers und das Auslesen der Datei aus Access.. Ich wähle im Access drucken und dann "Als Datei Speichern". Wenn ich diese Datei mit einem Texteditor öffne kommt nur Datensalat.


Kann mir jemand bei einem der Schritte helfen oder nützliche Links schicken? Ich wäre dafür sehr sehr dankbar
 

Tobse

Top Contributor
Dieses Vorhaben ist sehr umfangreich. Ich möchte es dir bei Leibe nicht ausreden, aber du solltest dir Bewusst sein, auf was du dich einlässt.

Bezüglich des Kommunikation mit dem Drucker:

Zunächst mal ist die Frage, ob die "Pixel" oder "Pfade", die der Drucker auf die Labels druckt, eine Auflösung bieten, die groß genug ist, um deine speziellen Labels abzubilden. Wenn er das nicht kann, musst du wohl oder übel mit den Schriftzeichen Vorlieb nehmen.

Die Treiberschnittstelle zum Drucker ist wahrscheinlich proprietär und closed-source; dann hast du verloren.
Wenn sie das nicht ist, kannst du auf der Herstellerseite sicherlich Dokumentation und Headerfiles (.h oder .hpp) herunterladen, um den Instalierten Treiber ansprechen zu können.

Wenn du also mit dem Treiber kommunizieren kannst, stellt sich die Frage, ob der Treiber es dir erlaubt, etwas anderes als Schriftzeichen auf das Label zu drucken. Auch hier: wenn er das nicht tut, musst du mit den Schriftzeichen auskommen.

Wenn also diese Vorraussetungen erfüllt sind, ist dein Vorhaben machbar. Folgende Hürde stellt sich aber noch:

Der Treiber ist sehr Wahrscheinlich in C/C++ geschrieben. In diesem Fall musst du entweder eine C/C++ Anwendung schreiben, welche die Kommunikation mit dem Treiber übernimmt und deine Parameter zum Ducken über die Kommandozeile entgegen nimmt (siehe die Java-Klassen Process und ProcessBuilder).
Die Alternative ist JNI; einem Anfänger würe ich eher zum Kommandozeilen-Interface raten.

Nun zu Access:
Access ist eine Datenbank-Management Software. Normalerweise verbindet sich so eine Software mit einem RDS. Damit die kleinen Datenbanken, die man mit Access pflegt, handbar bleiben, wird diese Datenbank in eine Datei geschrieben; mit einem Texteditor wirst du dieser nicht Herr.
Ich würde also empfehlen deine Access-Datenbank auf einen richtigen Datenbankserver zu migrieren (mit XAMPP kann man den auch easy lokal betreiben). Dann kannst du mit den JDBC für MySQL per SQL-Queries darauf zugreiffen.
Alternativ kannst du die Access-Datenbank auch als SQLite Datenbank exportieren und dann mit dem JDBC für SQLite deine Queries abfeuern.

EDIT: Sorry, du wolltest ja ein paar Links haben ;)

JDBC:
Java Database Connectivity – Wikipedia
Java SE Technologies - Database

JDBC Treiberdownloads:
JDBC-Treiber für MySQL Datenbanken
JDBC-Treiber für SQLite

JNI Basics
 
Zuletzt bearbeitet:

Visi

Mitglied
Vielen Dank für deine Antworten Tobse.

Also ich kann ganz normal Text oder sonstiges an den Drucker schicken, der druckt das schon aus, das Logo an sich kann er schon auch ausdrucken wenn ich die jpg öffne und auf "Drucken" gehe. Wenn ich aber selber eine neue BMP male und die Ausdrucke kann ich leider keine Ausrichtung, Skalierung etc. eingeben, da weiß ich nicht weiter. Er druckt dann das gemalte irgendwie in die Mitte und verkleinert es vorher.

Bzgl. Access : Ein netter Forenuser hat mir eine PN geschrieben in der auf Java Library for MS Access hingewiesen wird, das teste ich gerade. Halte euch auf dem Laufenden
 

Tobse

Top Contributor
Visi hat gesagt.:
Also ich kann ganz normal Text oder sonstiges an den Drucker schicken, der druckt das schon aus, das Logo an sich kann er schon auch ausdrucken wenn ich die jpg öffne und auf "Drucken" gehe. Wenn ich aber selber eine neue BMP male und die Ausdrucke kann ich leider keine Ausrichtung, Skalierung etc. eingeben, da weiß ich nicht weiter. Er druckt dann das gemalte irgendwie in die Mitte und verkleinert es vorher.
Mit welcher Software machst du das denn? Wenn das mit dem Windows-Notepad geht kannst du ggf. über das OS drucken lassen und musst dich mit dem Treiber garnicht auseinandersetzen. Drucken mit Java.
 

Visi

Mitglied
Mit welcher Software machst du das denn? Wenn das mit dem Windows-Notepad geht kannst du ggf. über das OS drucken lassen und musst dich mit dem Treiber garnicht auseinandersetzen. Drucken mit Java.

Mit genau dem Code aus dem Link.


Code:
import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintException;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;


public class Test {


	public static void main(String[] args) {
		// TODO Auto-generated method stub


		char[] printdata = "hello world\n".toCharArray();
		DocFlavor flavor = DocFlavor.CHAR_ARRAY.TEXT_PLAIN;
		PrintService pservice = PrintServiceLookup.lookupDefaultPrintService();
		DocPrintJob pjob = pservice.createPrintJob();
		Doc doc= new SimpleDoc(printdata, flavor, null);
		try {
			pjob.print(doc, null);
		} catch (PrintException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

damit drucke ich Text auf den Drucker, Bilder oder so öffne ich einfach und drücke STRG+P.

Ich ahne langsam dass einige meiner Probleme auf das Dateiformat von der MDB Datei zurückzuführen sind, es scheint sich um 1997 [VERSION_3] zu handeln, das scheint jackccess nicht öffnen zu können (irgendein Codec Fehler).

Gibt es irgendeine Möglichkeit eine alte (etwa von 1997) MDB Dateiversion in irgendwas anderes zu Codieren? Am allermeisten würde ich mich über XML freuen und darüber, dass der Konvertierungsschritt entweder in Java oder auf Kommandozeile zu machen ist
 

Tobse

Top Contributor
Wenn du Bilder über andere Software druckst, hast du natürlich keinen Einfluss darauf, was das Programm noch mit ihnen anstellt. Schonmal probiert das bild direkt zu drucken? Man kann mit Java auch BufferedImages etc direkt drucken.

Schonmal versucht die alte .mdb mit einem neueren Access zu öffnen und unter einem neueren Format abzuspeichern?
 

Visi

Mitglied
Wenn du Bilder über andere Software druckst, hast du natürlich keinen Einfluss darauf, was das Programm noch mit ihnen anstellt. Schonmal probiert das bild direkt zu drucken? Man kann mit Java auch BufferedImages etc direkt drucken.

Schonmal versucht die alte .mdb mit einem neueren Access zu öffnen und unter einem neueren Format abzuspeichern?

Das mit den BufferedImages probiere ich jetzt mal aus, ich berichte über meine Fortschritte.
Ich kann es leider nicht unter einem neueren Format speichern, es sollte zwar, aber es kommt keine Datei? Trotzdem gute Idee : kann Sachen aus der Datenbank kopieren, in Word einfügen und als TXT speichern, das ist auch richtig brauchbar. Jetzt ist mein Problem eine TXT einzulesen, zu filtern und auszudrucken. Völlig in Ordnung für mich
 

Tobse

Top Contributor
Visi hat gesagt.:
Ich kann es leider nicht unter einem neueren Format speichern, es sollte zwar, aber es kommt keine Datei?
Das hört sich schwer nach einem Bug in Access an... kann man nix machen.

Du könntest natürlich trotzdem den Export nach SQLite versuchen. Das ist zwar ein wenig schwieriger anzusprechen wie die Textdatei aber bietet auch mehr flexibilität & komplexität, wenn du sie brauchst.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Zebra GC420d - Label Printer Allgemeine Java-Themen 1
B Long in einen Double umwandeln und im Label anzeigen Allgemeine Java-Themen 7
L Label- & Textfelderzeugung durch Button Allgemeine Java-Themen 1
M Swing JFreeChart Domain Axis Label Abstand zu TickUnitLabel Allgemeine Java-Themen 9
S AWT JFreeChart in ein Label Allgemeine Java-Themen 7
M Probleme mit String in Label übergeben. Allgemeine Java-Themen 6
S Text in for Schleife in Label einfügen Allgemeine Java-Themen 4
P ActionListener / Label Name auslesen Allgemeine Java-Themen 2
D break block by label Allgemeine Java-Themen 14
N String array in Label ausgeben Allgemeine Java-Themen 6
MQue Anzeige mit Label kombinieren Allgemeine Java-Themen 4
S Bild durchs Label laufen Allgemeine Java-Themen 14
K bildflackern in label Allgemeine Java-Themen 2
7 Mehrzeiliges Label Allgemeine Java-Themen 16
H Nullpointer exception, Attribute in Label schreiben? Allgemeine Java-Themen 4
S Probleme mit LinkedList und Label mit gridbagLayout Allgemeine Java-Themen 2
H set. in label ausgeben ? Allgemeine Java-Themen 2
G Text und Bild/Icon im Label/Button positionieren/ausrichten Allgemeine Java-Themen 2
J Zeitzähler in Label? Allgemeine Java-Themen 6
M Bild auf Label. Allgemeine Java-Themen 8
L Label mit Images Allgemeine Java-Themen 20
OnDemand Drucker simulieren auf Mac Allgemeine Java-Themen 5
I PDF-Drucker erzeugt nur A4-Seiten Allgemeine Java-Themen 2
Bluedaishi Java bluetooth Drucker ansteuern Allgemeine Java-Themen 0
H ESC/POS Steuerzeichen an Drucker senden Allgemeine Java-Themen 4
M PDF Drucker-Attribute hinterlegen Allgemeine Java-Themen 3
H PDF Drucker mit einer Java API Allgemeine Java-Themen 19
R Drucken über bestimmten Drucker Allgemeine Java-Themen 11
T (nur) HP Photosmart Drucker lässt einzelne Seiten aus Allgemeine Java-Themen 6
S Auslesen aller verfügbaren Drucker-Schächte Allgemeine Java-Themen 3
B PrintService - Wie prüfen ob Drucker online ist? Allgemeine Java-Themen 2
C Papierfach bei Drucker auswählen Allgemeine Java-Themen 4
G html-code an drucker senden Allgemeine Java-Themen 10
D Probleme mit dem Drucker Einstellungen ! Allgemeine Java-Themen 5
S Drucker druckt nicht (Postscript direkt an Drucker) Allgemeine Java-Themen 5
G Standard-Drucker mit Java setzen Allgemeine Java-Themen 4
M Angeschlossene Drucker ermitteln Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben