code: func (f *Fpdf) SetPageBoxRec(t string, pb PageBox) {
  	switch strings.ToLower(t) {
  	case "trim":
  		fallthrough
  	case "trimbox":
  		t = "TrimBox"
  	case "crop":
  		fallthrough
  	case "cropbox":
  		t = "CropBox"
  	case "bleed":
  		fallthrough
  	case "bleedbox":
  		t = "BleedBox"
  	case "art":
  		fallthrough
  	case "artbox":
  		t = "ArtBox"
  	default:
  		f.err = fmt.Errorf("%s is not a valid page box type", t)
  		return
  	}
  
  	pb.X = pb.X * f.k
  	pb.Y = pb.Y * f.k
  	pb.Wd = (pb.Wd * f.k) + pb.X
  	pb.Ht = (pb.Ht * f.k) + pb.Y
  
  	if f.page > 0 {
  		f.pageBoxes[f.page][t] = pb
  	}
  
  	// always override. page defaults are supplied in addPage function
  	f.defPageBoxes[t] = pb
  }
docs: // SetPageBoxRec sets the page box for the current page, and any following
  // pages. Allowable types are trim, trimbox, crop, cropbox, bleed, bleedbox,
  // art and artbox box types are case insensitive. See SetPageBox() for a method
  // that specifies the coordinates and extent of the page box individually.