package main import "ippserver/packages/ipp" func handleGetPrinterAttributes(r *ipp.Request) *ipp.Response { response := ipp.NewResponse(ipp.SuccessfulOk, r.RequestID()) var a ipp.Attribute a = ipp.NewCharSetValue("attributes-charset", "utf-8") response.AddOperatonAttribute(a) a = ipp.NewNaturalLanguage("attributes-natural-language", "en") response.AddOperatonAttribute(a) a = ipp.NewURIValue("printer-uri", "ipp://drpork:1234/ipp/print") response.AddOperatonAttribute(a) a = ipp.NewtextWithoutLanguage("printer-make-and-model", "ChroBro 001") response.AddOperatonAttribute(a) a = ipp.NewEnum("printer-state", int32(ipp.Idle)) response.AddOperatonAttribute(a) a = ipp.NewKeyWord("ipp-versions-supported", "1.0", "1.1", "2.0") response.AddOperatonAttribute(a) response.AddOperatonAttribute(ipp.NewKeyWord("ipp-features-supported", "wfds-print-1.0")) response.AddOperatonAttribute(ipp.NewMimeMediaType("document-format-supported", "image/pwg-raster")) response.AddOperatonAttribute(ipp.NewKeyWord("media-supported", "iso_a4_210x297mm")) response.AddOperatonAttribute(ipp.NewKeyWord("sides-supported", "one-sided", "two-sided-long-edge", "two-sided-short-edge")) response.AddOperatonAttribute(ipp.NewKeyWord("print-color-mode-supported", "auto", "color", "monochrome")) response.AddOperatonAttribute(ipp.NewResolution("printer-resolution-default", 600, 600)) response.AddOperatonAttribute(ipp.NewBoolean("printer-is-accepting-jobs", true)) return response }