java生成矢量条形码二维码

产品说条形码模糊,然后就生成了矢量的条形码给前端用。后面才知道前端是可以自己直接生成的。
还是记录一下
遇到一个奇怪的问题,在demo工程里面请求返回的流页面能直接显示出图形。但是在项目工程里面却返回的是xml形式的字符串。这里搞了一阵。后面无意间发现。直接返回String形式的svg文件内容,前端居然可以显示。然后后台直接返回了Sting形式给前端直接用。样式也是调好的。加了width="100%‘’方便前端控制宽度。之前直接返回流前端用不了。只能加个临时文件中转一下。这里如果有更好的办法可以告诉我一下,暂时没想到。

参考代码

    
            com.google.zxing
            core
            2.2
        
        
            de.erichseifert.vectorgraphics2d
            VectorGraphics2D
            0.9.3
        
        
            net.sf.barcode4j
            barcode4j
            2.1
        


    @RequestMapping("/bar")
    @ResponseBody
    public String getbar(HttpServletResponse response,String code) {
        String res = null;
        try {
             res = BarcodeTestTools.getcode3(response,code);
             log.info("返回的结果={}",res);
             res = res.replace("

二维码

  @RequestMapping("/qr")
    @ResponseBody
    public String jxxqr(HttpServletResponse response,String code,int size) throws IOException, WriterException {
        String res = Test.getQr(response,code,size);
        System.out.println("qr====="+res);
        return res;
    }

    public static String getQr(HttpServletResponse response,String code,int size) throws WriterException, IOException {
        double point_x = 0;
        double point_y = 0;
        final int blockSize = 1;
        SVGGraphics2D funcOld = new SVGGraphics2D(point_x, point_y, 40 * blockSize, 40 * blockSize);
        ExportQrCode.fill2VectorLine(funcOld,GetBitMatrix(code, size,ErrorCorrectionLevel.M), blockSize);

        File tempFile = File.createTempFile("bar",".svg");
        PrintStream psFile = new PrintStream(tempFile);
        psFile.append(funcOld.toString());
        psFile.close();

        FileReader fileReader = new FileReader(tempFile);
        BufferedReader bufferedReader = new BufferedReader(fileReader);
        StringBuilder sb = new StringBuilder();
        String line =bufferedReader.readLine();
        while (line!=null){
            sb.append(line);
            line = bufferedReader.readLine();
        }
        bufferedReader.close();
        fileReader.close();
        tempFile.delete();
        return sb.toString();
    }

页面




  
  
  
  
  testsvg





效果如下:
http://maobo.live/my/ban/bar3?code=helloxxmb

你可能感兴趣的:(我的笔记,svg,矢量条形码)