code: func printBarcode(pdf barcodePdf, code string, x, y float64, w, h *float64, flow bool) {
  	barcodes.Lock()
  	unscaled, ok := barcodes.cache[code]
  	barcodes.Unlock()
  
  	if !ok {
  		err := errors.New("Barcode not found")
  		pdf.SetError(err)
  		return
  	}
  
  	bname := uniqueBarcodeName(code, x, y)
  	info := pdf.GetImageInfo(bname)
  	scaleToWidth := unscaled.Bounds().Dx()
  	scaleToHeight := unscaled.Bounds().Dy()
  
  	if info == nil {
  		bcode, err := barcode.Scale(
  			unscaled,
  			scaleToWidth,
  			scaleToHeight,
  		)
  
  		if err != nil {
  			pdf.SetError(err)
  			return
  		}
  
  		err = registerScaledBarcode(pdf, bname, bcode)
  		if err != nil {
  			pdf.SetError(err)
  			return
  		}
  	}
  
  	if w != nil {
  		scaleToWidth = int(*w)
  	}
  	if h != nil {
  		scaleToHeight = int(*h)
  	}
  	pdf.Image(bname, x, y, float64(scaleToWidth), float64(scaleToHeight), flow, "jpg", 0, "")
  
  }
docs: // printBarcode internally prints the scaled or unscaled barcode to the PDF. Used by both
  // Barcode() and BarcodeUnscalable().