public IPP Send(IPP request) { request.RequestId = ++this._RequestCounter; request.AttrGroup[AttrGroups.OperationAttributesTag].Add(new IPP.Attribute(Tag.URI, this.IPP_URI.ToString())); var content = new ByteArrayContent(request.ToByte()); content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/ipp"); var task = this._Client.PostAsync(this.URI, content); task.Wait(); var res = task.Result; if (res.StatusCode != HttpStatusCode.OK) { throw new Exception(res.ReasonPhrase); } var conTask = res.Content.ReadAsByteArrayAsync(); conTask.Wait(); var response = new IPP(conTask.Result); return(response); }
public static Job PrintJob(string userName, string jobName, string mimeType, byte[] data) { var ipp = new IPP(); ipp.OperationId = OperationId.PrintJob; ipp.AttrGroup[AttrGroups.OperationAttributesTag].Add( new IPP.Attribute(Tag.NameWithoutLanguage, userName) ); ipp.AttrGroup[AttrGroups.OperationAttributesTag].Add( new IPP.Attribute(Tag.NameWithoutLanguage, jobName) ); ipp.AttrGroup[AttrGroups.OperationAttributesTag].Add( new IPP.Attribute(Tag.MimeMediaType, mimeType) ); ipp.Data = data; return(new Job() { Request = ipp, MimeType = mimeType, JobName = jobName, UserName = userName }); }
public void UpdateJobState(Job job) { var ipp = new IPP(); ipp.OperationId = OperationId.GetJobAttributes; ipp.AttrGroup[AttrGroups.OperationAttributesTag].Add(new IPP.Attribute(Tag.URI, "job-uri", job.JobURI)); job.RecieveResponse(this.Send(ipp)); }
public void RecieveResponse(IPP ipp) { foreach (IPP.Attribute attr in ipp.AttrGroup[AttrGroups.JobAttributesTag]) { if (attr.Tag == Tag.Integer && attr.Name.CompareTo("job-id") == 0) { this.JobID = (int)attr.ValueAsObject; } if (attr.Tag == Tag.URI && attr.Name.CompareTo("job-uri") == 0) { this.JobURI = (String)attr.ValueAsObject; } if (attr.Tag == Tag.Enum && attr.Name.CompareTo("job-state") == 0) { this.State = (DocumentState)attr.ValueAsObject; } } }
protected IPP _GetPrinterAttributes() { var ipp = new IPP(); ipp.OperationId = OperationId.GetPrinterAttributes; ipp.AttrGroup[AttrGroups.OperationAttributesTag].Add( new IPP.Attribute(Tag.Keyword, "requested-attributes", "document-format-supported") ); ipp.AttrGroup[AttrGroups.OperationAttributesTag].Add( new IPP.Attribute(Tag.Keyword, "", "media-supported") ); ipp.AttrGroup[AttrGroups.OperationAttributesTag].Add( new IPP.Attribute(Tag.Keyword, "", "orientation-requested-supported") ); ipp.AttrGroup[AttrGroups.OperationAttributesTag].Add( new IPP.Attribute(Tag.Keyword, "", "print-quality-supported") ); return(this.Send(ipp)); }