Barcodes mit java



  • hi

    hat mich nicht losgelassen, ist ja auch trübes wetter draussen.

    also: zieh dir mal
    http://sourceforge.net/project/showfiles.php?group_id=96670

    also das barcode4j, mit dem anderen hatte ich auch probleme.

    was ist zutun:
    der einfachheit halber das binary ziehen, ansonsten 'ant' an der hand haben und selber bauen.
    dann die pfade legen. in der docu steht genau drin, wie, nur wollte es bei mir mal wieder nicht, und so legte ich alle jars der lib einfach in den build ordner.. thats it.

    die seite:
    Using the Command Line Interface
    der mitgelieferten dokutmentation beschreibt sehr ordentlich, wie man dann vorgeht.
    ich habe zumindest, ohne mich mit barcode auszukennen, mal eben einen wunderbaren strichcode aus einer xml datei generiert zu einem png..
    alles andere ist auch möglich, so wie du eben die optionen setzt.

    <?xml version="1.0" encoding="UTF-8"?>
    <barcode>
      <code128>
        <height>2cm</height>
        <module-width>0.5mm</module-width>
      </code128>
    </barcode>
    

    nett gemacht das ganze.
    wie gesagt: nimm barcode4j, das krysalis-barcode hat mir den nerv geraubt.

    so long, wenns nicht klappt, poste nochmal, aber achte total auf die mitgegebenen flags auf der kommandozeile.



  • erstmal Danke....
    aber grrrr
    Also das command line tool läuft, nur such ich das - ums mal vornehm zu sagen - nicht direkt.
    Ich komm also wieder auf Embedding in a Java application, nur da kommt ja schon wieder das avalon dingsbums zu einstatz - und das will, wie kann mans anders erwarten, nicht 😡
    Hilft mir nochmal jemand *liebguck*



  • ohne dich noch mehr stressen zu wollen:

    die obigen meldungen zu avalon hatte ich am anfang ebenso.
    (genau die gleichen wortlaute 😉 )
    problem war einzig und allein die übliche classpath einstellung.

    im notfall: direkt draufsetzen, oder in den libordner mit reinwerfen, oder sonstige (schlechte) dinge.

    im allergrößten notfall: den source benutzen, nicht das jarfile, und per hand einbinden. (gibt es auch zum download)..

    viel glück.



  • Wie dann hast du das Problem gelöst?
    Ich geh hier fast ein, hattest recht mit dem Stress 😡

    1. Lösung:
    Ich hab das jar-File sammt dem Ordner wo's liegt in den Classpath aufgenommen, das muss doch im Prinzip reichen... mehr kann ich ja eh net machen ---> geht aber net s.o.

    Ok, dann eben 2. Lösung:
    Alle Fils direkt in den Ordner, den in den classpath, müsste auch gehen --> war aber klar dass es net tut, gleiche meldung

    Dann 3. Lösung:
    Dirket die class files ohne jar, alle direkt in ein Verzeichniss --> Looogisch tut auch net, jetzt ist wohl seine Verzeichnissstrucktur im Eimer...

    Welche Lösung ging, wo lagen da die Files und wie war der classpath, hoff das ich mit den Infos weiterkommen würde....



  • habe jeden jar einzeln in den classpath gesetzt.
    also persönlich angesprochen.
    erst dann gings.

    die mitgelieferte batch ist leider nicht in ordnung.

    habe mich ein wenig hieran orientiert:

    java -cp build\barcode4j.jar;lib\avalon-framework-4.1.5.jar;lib\commons-cli-1.0.jar
        org.krysalis.barcode4j.cli.Main <parameters
    

    wobei die cli.main bei mir im jar drin sitzt, und ich nur die jars explizit benennen musste.

    http://barcode4j.krysalis.org/cli.html

    ps: aus gründen der vereinfachung lag zum schluss alles im gleichen ordner. sprich: die barcode4j.jar mit dem framework im selben. nicht wie ursrprünglich im build und lib.

    nicht schön, aber selten 😉



  • elise schrieb:

    habe jeden jar einzeln in den classpath gesetzt.

    Das muß man auch. jar-files werden nicht aus Ordnern geparst. 💡



  • Ja das Command line Interface tut ja, da hat die Lösung - alles in einen Ordner rein - auch funktioniert
    Was nicht tut is hier die Lösung für das eingebettete Java

    Meine derzeitige Kompileroption sieht so aus:

    javac -classpath .;.\barcode4j.jar;.\avalon-framework-4.1.5.jar test.java
    java test
    

    Die frage is nur WO is das Problem? Mehr kann ich ja eigentlich nemme machen



  • ein bisschen schimpfen muss ich schon..

    im grunde gibt es keinen unterschied zwischen commandozeile und embedded.

    hast du das beigelegte pdf gelesen und dazu noch die doku durchgeschaut? dafür sind sie da.. (so, genug geschimpft 😉 )

    hier ein funktionierendes beispiel, und achte auf die pfade, auch bei der ausführung den classpath setzen.

    //kurz hingeschmiert, ohne schönheitsanspruch
    //der barcodegenerator ist ein singleton.
    
    import org.apache.avalon.framework.configuration.Configuration;
    import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder;
    import org.krysalis.barcode4j.output.bitmap.*;
    import org.krysalis.barcode4j.*;
    import org.krysalis.barcode4j.BarcodeUtil;
    import java.awt.image.*;
    import java.io.*;
    
    class BarcodeTest {
    
    	static String msg="hallo";
    
        public static void main( String args[] )
      	{
         new BarcodeTest();
    
        Configuration cfg;
         BarcodeGenerator gen =null ;
         DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder();
         try{
    	 	cfg = builder.buildFromFile(new File("test.xml"));
    	    gen = BarcodeUtil.getInstance().createBarcodeGenerator(cfg );
    	 }catch (IOException e){
    		 System.out.println("io:"+e);
    
    	 }catch (org.xml.sax.SAXException s){
    		 System.out.println("SAX:"+s);
    	 }catch (org.apache.avalon.framework.configuration.ConfigurationException c){
    		System.out.println("Sava:"+c);
    	 }catch(org.krysalis.barcode4j.BarcodeException b){
    		 System.out.println("BAD"+b);
    		 }
    
    	 try{
    		OutputStream out = new java.io.FileOutputStream(new File("output.png"));
    
    	 	BitmapCanvasProvider provider = new BitmapCanvasProvider(
    	     out, "image/x-png", 300, BufferedImage.TYPE_BYTE_GRAY, true);
    
    	 	gen.generateBarcode(provider, msg);
    		provider.finish();
    	}catch  (IOException e){}
    
        }
    }
    

    ps: warum ich schimpfe? weil immer erstmal auf den source geschimpft wird, statt die beigelegten faqs zu lesen. wie der obige andere anonyme...



  • Also vorweg erstmal DANKE! 👍
    Es läuft 🙂 und das jetzt auf meine Bedürfnisse anzupassen, das dürfte nemme so schwer werden!
    Und jetz die Hilfe für alle die, die vor dem geleichen Problem stehen: Wenn der Compiler ohne Fehler drübergeht, aber die VM nicht will, prüft den classpath nochmal genau! Denn man überliest so leicht was 🙄

    So on - nen guten Rutsch!



  • Matthias79 schrieb:

    Also vorweg erstmal DANKE! 👍
    Es läuft 🙂 und das jetzt auf meine Bedürfnisse anzupassen, das dürfte nemme so schwer werden!
    Und jetz die Hilfe für alle die, die vor dem geleichen Problem stehen: Wenn der Compiler ohne Fehler drübergeht, aber die VM nicht will, prüft den classpath nochmal genau! Denn man überliest so leicht was 🙄

    So on - nen guten Rutsch!

    *grins*

    leider kommt sowas oft daher, dass leute nur mit ide arbeiten, und nicht auf konsole/bash..
    lalala

    da denn viel spaß mit den strichen.



  • leider kommt sowas oft daher, dass leute nur mit ide arbeiten, und nicht auf konsole/bash..
    lalala

    Eigentlich dürfte das mir nix ausmachen, hab auf meinem Rechner net mal ne IDE 😃 (also für Java) - bin nur zugegebenermaßen etws grün auf dem Java - Gebiet... 🙄



  • sorry, war nicht auf dich gemünzt, nur so eine erfahrung ...

    he, draußen fliegen schon raketen, jetzt schon... .. na ja. 😉


Anmelden zum Antworten