private static void DeletePrinter() { var client = new GoogleCloudPrintClient(provider, token); var listRequest = new ListRequest { Proxy = proxy }; var listResponse = client.ListPrinterAsync(listRequest).Result; if (listResponse.Printers != null && listResponse.Printers.Any()) { for (int i = 0; i < listResponse.Printers.Count(); i++) { Console.WriteLine($"{i + 1}. {listResponse.Printers.ElementAt(i).DisplayName}"); } Console.Write("Please choose a printer to delete: "); int option = -1; if (int.TryParse(Console.ReadLine(), out option)) { var printer = listResponse.Printers.ElementAt(option - 1); var deleteRequest = new DeleteRequest { PrinterId = printer.Id }; var deleteResponse = client.DeletePrinterAsync(deleteRequest).Result; Console.WriteLine($"Delete: {deleteResponse.Success}"); } } else { Console.WriteLine("There is no printer to delete!"); } }
public void SubmitPrint(GoogleCloudPrintClient client) { // Create a cloud job ticket first, it contains the printer setting of the document var cjt = new CloudJobTicket { Print = new PrintTicketSection { Color = new ColorTicketItem { Type = Color.Type.STANDARD_MONOCHROME }, Duplex = new DuplexTicketItem { Type = Duplex.Type.LONG_EDGE }, PageOrientation = new PageOrientationTicketItem { Type = PageOrientation.Type.LANDSCAPE }, Copies = new CopiesTicketItem { Copies = 1 } } }; // Create a request for file submission, you can either submit a url with SubmitFileLink class, or a local file with SubmitFileStream class var request = new SubmitRequest { PrinterId = "d08832da-03e4-a068-885b-46ea9750f3eb", Title = "teste", Ticket = cjt, Content = new SubmitFileLink("https://image.slidesharecdn.com/teste-140108070830-phpapp02/95/folha-de-teste-1-638.jpg?cb=1389164960") // or new SubmitFileStream(contentType, fileName, fileStream) }; // Submit request var response = client.SubmitJobAsync(request).Result; }
private static void GetUserProfile() { var client = new GoogleCloudPrintClient(provider, token); var userProfile = client.GetUserProfileAsync().Result; Console.WriteLine("GivenName: {0}, Email: {1}, Picture: {2}, Link: {3}", userProfile.GivenName, userProfile.Email, userProfile.Picture, userProfile.Link); }
static void RegisterPrinter() { try { var client = new GoogleCloudPrintClient(provider, token); var pq = GetSelectedQueue(); if (pq != null) { //string capabilities = GetCapabilitiesFromPrintQueue(pq); string capabilities = File.ReadAllText("cdd.txt"); var request = new RegisterRequest { Name = pq.FullName, DefaultDisplayName = pq.FullName, Proxy = proxy, Capabilities = capabilities, UseCdd = true }; var googlePrinter = client.RegisterPrinterAsync(request).Result; Console.WriteLine($"Success: {googlePrinter.Success}"); } } catch (System.AggregateException ex) { if (ex.InnerExceptions.Any()) { Console.WriteLine(ex.InnerExceptions.First().Message); } } }
public bool DeletePrinter(string printerId) { var request = new DeleteRequest { PrinterId = printerId }; var client = new GoogleCloudPrintClient(OAuth2Provider, RefreshToken.Value); return(client.DeletePrinterAsync(request).Result.Success); }
private static async void XmppTest() { var client = new GoogleCloudPrintClient(provider, token); client.OnXmppDebugLogging += Client_OnXmppLogging; client.OnIncomingPrintJobs += Client_OnIncomingPrintJobs; client.OnTokenUpdated += Client_OnTokenUpdated; await client.InitXmppAsync("salmonthinlion"); //client.StopXmppAndCleanup(); }
public void PrintJob(GoogleCloudPrintClient client) { // Create a request to list jobs of a printer var listRequest = new JobListRequest { PrinterId = "d08832da-03e4-a068-885b-46ea9750f3eb", Status = "QUEUED" }; // Submit request var response = client.ListJobAsync(listRequest).Result; }
public Printer RegisterPrinter(string name) { var request = new RegisterRequest { Name = name, Proxy = Proxy.Value, Capabilities = Cdd.Value.ToCapabilities(), UseCdd = true }; var client = new GoogleCloudPrintClient(OAuth2Provider, RefreshToken.Value); return(client.RegisterPrinterAsync(request).Result.Printers[0]); }
public void testeAsync() { var client = new GoogleCloudPrintClient(provider, token); var request1 = new ListRequest { Proxy = "db9ab847-832e-4a0c-ab76-3673be68e9c1" }; var response1 = client.ListPrinterAsync(request1).Result; //SubmitPrint(client); PrintJob(client); }
private static void Test() { var googClient = new GoogleCloudPrintClient(provider, token); using (var client = new WebClient()) { client.Headers.Add("X-CloudPrint-Proxy", proxy); var authToken = googClient.GetTokenAsync().Result.AccessToken; client.Headers.Add("Authorization", string.Format("Bearer {0}", authToken)); client.OpenRead("https://www.google.com/cloudprint/download?id=71a1c2f9-62a8-884a-a673-114db79b87bf"); var bytes_total = Convert.ToInt64(client.ResponseHeaders["Content-Length"]); Console.WriteLine(bytes_total.ToString() + " Bytes"); } }
static async Task Main(string[] args) { var clientId = "#printClientId#"; var clientSecret = "#printClientSecret#"; var printerId = "#printer-id#"; var credPath = $"cerd.json"; var provider = new GoogleCloudPrintOAuth2Provider(clientId, clientSecret); var jsonString = System.IO.File.ReadAllText(credPath); Token token = JsonConvert.DeserializeObject <Token>(jsonString); var client = new GoogleCloudPrintClient(provider, token); client.OnTokenUpdated += (sender, e) => { string json = JsonConvert.SerializeObject(e); System.IO.File.WriteAllText(credPath, json); }; var ticket = new CloudJobTicket { Print = new PrintTicketSection { Color = new ColorTicketItem { Type = Color.Type.STANDARD_MONOCHROME }, //Duplex = new DuplexTicketItem { Type = Duplex.Type.LONG_EDGE }, PageOrientation = new PageOrientationTicketItem { Type = PageOrientation.Type.LANDSCAPE }, Copies = new CopiesTicketItem { Copies = 1 } } }; // Create a request for file submission, you can either submit a url with SubmitFileLink class, or a local file with SubmitFileStream class var request = new SubmitRequest { PrinterId = printerId, Title = "Ebay-Printer", Ticket = ticket, Content = new SubmitFileLink("URL HERE") }; // Submit request var response = await client.SubmitJobAsync(request); }
public void UpdatePrinterTest() { Cleanup(); var printer = RegisterPrinter("hello"); var updateRequest = new UpdateRequest { PrinterId = printer.Id, Name = "world" }; var client = new GoogleCloudPrintClient(OAuth2Provider, RefreshToken.Value); var u = client.UpdatePrinterAsync(updateRequest).Result; Assert.Equal("world", u.Printer.Name); }
public void SearchPrinterTest() { Cleanup(); RegisterPrinter("printerToSearch"); var searchRequest = new SearchRequest() { Q = "^recent" }; var client = new GoogleCloudPrintClient(OAuth2Provider, RefreshToken.Value); var lists = client.SearchPrinterAsync(searchRequest).Result; Assert.Equal(true, lists.Success); }
public void GetPrinterTest() { Cleanup(); const string PrinterName = "PrinterToGet"; var printer = RegisterPrinter(PrinterName); var getRequest = new PrinterRequest { PrinterId = printer.Id }; var client = new GoogleCloudPrintClient(OAuth2Provider, RefreshToken.Value); var p = client.GetPrinterAsync(getRequest).Result; Assert.Equal(PrinterName, p.Printers[0].Name); }
private static void SearchPrinter() { var client = new GoogleCloudPrintClient(provider, token); var request = new SearchRequest() { Q = "^recent" }; var result = client.SearchPrinterAsync(request).Result; Console.WriteLine("Success: {0}", result.Success); Console.WriteLine("Search Result: "); foreach (var printer in result.Printers) { Console.WriteLine(printer.Name); } }
public void Cleanup() { // Cleanup the environment var listRequest = new ListRequest { Proxy = Proxy.Value }; var client = new GoogleCloudPrintClient(OAuth2Provider, RefreshToken.Value); var lists = client.ListPrinterAsync(listRequest).Result; foreach (var p in lists.Printers) { var deleteRequest = new DeleteRequest { PrinterId = p.Id }; var success = client.DeletePrinterAsync(deleteRequest).Result; } }
public void ListPrinterTest() { Cleanup(); RegisterPrinter("hihi_one"); RegisterPrinter("hihi_two"); RegisterPrinter("hihi_three"); var listRequest = new ListRequest() { Proxy = Proxy.Value }; var client = new GoogleCloudPrintClient(OAuth2Provider, RefreshToken.Value); var lists = client.ListPrinterAsync(listRequest).Result; Assert.Equal(3, lists.Printers.Count); }
private static void SharePrinter() { var client = new GoogleCloudPrintClient(provider, token); var listRequest = new ListRequest { Proxy = proxy }; var listResponse = client.ListPrinterAsync(listRequest).Result; if (listResponse.Printers != null && listResponse.Printers.Any()) { for (int i = 0; i < listResponse.Printers.Count; i++) { Console.WriteLine($"{i + 1}. {listResponse.Printers.ElementAt(i).DisplayName}"); } int printerOption = -1; Console.Write("Please choose a printer to share: "); if (int.TryParse(Console.ReadLine(), out printerOption)) { var printer = listResponse.Printers.ElementAt(printerOption - 1); Console.Write("Please enter a google account to send share invitation: "); string account = Console.ReadLine(); var shareRequest = new ShareRequest { PrinterId = printer.Id, Scope = account, Role = Role.USER, SkipNotification = false }; var shareResponse = client.SharePrinterAsync(shareRequest).Result; if (shareResponse.Success) { Console.WriteLine($"Invitaion is sent to {account}"); } else { Console.WriteLine($"Invitation is not sent, error: {shareResponse.Message}"); } } } else { Console.WriteLine("There is no printer in the list"); } }
static void ListAndGetPrinter() { var client = new GoogleCloudPrintClient(provider, token); var listRequest = new ListRequest { Proxy = proxy }; var listResponse = client.ListPrinterAsync(listRequest).Result; if (listResponse.Printers != null && listResponse.Printers.Any()) { for (int i = 0; i < listResponse.Printers.Count; i++) { Console.WriteLine($"{i + 1}. {listResponse.Printers.ElementAt(i).DisplayName}"); } int printerOption = -1; Console.Write("Please choose a printer to look for details: "); if (int.TryParse(Console.ReadLine(), out printerOption)) { var printer = listResponse.Printers.ElementAt(printerOption - 1); var printerRequest = new PrinterRequest { PrinterId = printer.Id }; var printerResponse = client.GetPrinterAsync(printerRequest).Result; if (printerResponse.Printers != null && printerResponse.Printers.Any()) { var thePrinter = printerResponse.Printers.ElementAt(0); var message = new StringBuilder() .AppendLine($"Printer: {thePrinter.Name}") .AppendLine($"Model: {thePrinter.Model}") .ToString(); Console.WriteLine(message); } else { Console.WriteLine("No relevant printer is found."); } } } else { Console.WriteLine("There is no printer in the list"); } }
private static void UnsharePrinter() { var client = new GoogleCloudPrintClient(provider, token); var listRequest = new ListRequest { Proxy = proxy }; var listResponse = client.ListPrinterAsync(listRequest).Result; if (listResponse.Printers != null && listResponse.Printers.Any()) { for (int i = 0; i < listResponse.Printers.Count; i++) { Console.WriteLine($"{i + 1}. {listResponse.Printers.ElementAt(i).DisplayName}"); } int printerOption = -1; Console.Write("Please choose a printer to unshare: "); if (int.TryParse(Console.ReadLine(), out printerOption)) { var printer = listResponse.Printers.ElementAt(printerOption - 1); Console.Write("Please enter a google account to unshare: "); string account = Console.ReadLine(); var unshareRequest = new UnshareRequest { PrinterId = printer.Id, Scope = account }; var unshareResponse = client.UnsharePrinterAsync(unshareRequest).Result; if (unshareResponse.Success) { Console.WriteLine($"Printer {printer.Name} is unshared from {account}"); } else { Console.WriteLine($"Printer unshare failed, error: {unshareResponse.Message}"); } } } else { Console.WriteLine("There is no printer in the list"); } }
private static bool DownloadTicket(GoogleCloudPrintClient client, Models.Job.Job printJob) { try { var ticket = client.GetTicketAsync(printJob.TicketUrl, proxy).Result; //var request = new TicketRequest { JobId = printJob.Id }; //var ticket = client.GetCloudJobTicketAsync(request).Result; Directory.CreateDirectory(TicketFolderPath); string path = $"{Path.Combine(TicketFolderPath, Path.GetFileNameWithoutExtension(printJob.Title))}.xml"; using (var s = File.Create(path)) ticket.Save(s); Console.WriteLine($"Ticket {printJob.Title} is saved."); } catch (System.Exception ex) { Console.WriteLine(ex.ToString()); return(false); } return(true); }
private static bool DownloadDocument(GoogleCloudPrintClient client, Models.Job.Job printJob) { try { using (var documentStream = client.GetDocumentAsync(printJob.FileUrl, proxy).Result) { Directory.CreateDirectory(DocumentFolderPath); string path = $"{Path.Combine(DocumentFolderPath, Path.GetFileNameWithoutExtension(printJob.Title))}.pdf"; using (var fs = File.Create(path)) { documentStream.CopyTo(fs); } } Console.WriteLine($"Document {printJob.Title} is saved."); } catch (System.Exception ex) { Console.WriteLine(ex.ToString()); return(false); } return(true); }
private static void RegisterPrinter() { try { var client = new GoogleCloudPrintClient(provider, token); var pqs = GetPrintQueues(); for (int i = 0; i < pqs.Count(); i++) { Console.WriteLine("{0}. {1}", i, pqs.ElementAt(i).Key); } Console.Write("Select 1 printer to register: "); int index = Convert.ToInt32(Console.ReadLine()); var request = new RegisterRequest { Name = pqs.ElementAt(index).Key, DefaultDisplayName = pqs.ElementAt(index).Key, Proxy = proxy, Capabilities = File.ReadAllText(pqs.ElementAt(index).Value), UseCdd = false }; Console.WriteLine("Prepare to register: {0} to {1}\n{2}", request.Name, request.Proxy, request.Capabilities.Substring(0, 32)); Console.ReadLine(); var googlePrinter = client.RegisterPrinterAsync(request).Result; Console.WriteLine($"Success: {googlePrinter.Success}"); } catch (System.AggregateException ex) { if (ex.InnerExceptions.Any()) { Console.WriteLine(ex.InnerExceptions.First().Message); } } }
private static void SubmitJob() { var client = new GoogleCloudPrintClient(provider, token); var listRequest = new ListRequest { Proxy = proxy }; var listResponse = client.ListPrinterAsync(listRequest).Result; if (listResponse.Printers != null && listResponse.Printers.Any()) { for (int i = 0; i < listResponse.Printers.Count; i++) { Console.WriteLine($"{i + 1}. {listResponse.Printers.ElementAt(i).DisplayName}"); } int printerOption = -1; Console.Write("Please choose a printer to submit job: "); if (int.TryParse(Console.ReadLine(), out printerOption)) { var printer = listResponse.Printers.ElementAt(printerOption - 1); var printerRequest = new PrinterRequest { PrinterId = printer.Id }; var printerResponse = client.GetPrinterAsync(printerRequest).Result; if (printerResponse.Printers != null && printerResponse.Printers.Any()) { Console.Write("Do you print from Url or a local document? (Y: Url, N: Local Document)"); bool isUrl = Console.ReadLine().ToLower().Contains("y"); Console.WriteLine("Please enter the path to the url/ the local document"); string path = Console.ReadLine(); var cjt = new CloudJobTicket { Print = new PrintTicketSection { Color = new ColorTicketItem { Type = Color.Type.STANDARD_MONOCHROME }, Duplex = new DuplexTicketItem { Type = Duplex.Type.LONG_EDGE }, PageOrientation = new PageOrientationTicketItem() { Type = PageOrientation.Type.LANDSCAPE }, Copies = new CopiesTicketItem() { Copies = 3 } } }; JobResponse <SubmitRequest> response; if (isUrl) { var request = new SubmitRequest { PrinterId = printer.Id, Title = Guid.NewGuid().ToString(), Ticket = cjt, Content = new SubmitFileLink(path) }; response = client.SubmitJobAsync(request).Result; } else { using (var s = File.Open(path, FileMode.Open)) { var request = new SubmitRequest() { PrinterId = printer.Id, Title = Path.GetFileNameWithoutExtension(path), Ticket = cjt, Content = new SubmitFileStream("text/plain", path, s) }; response = client.SubmitJobAsync(request).Result; } } Console.WriteLine("Success: {0}", response.Success); } else { Console.WriteLine("No relevant printer is found."); } } } else { Console.WriteLine("There is no printer in the list"); } }
static void FetchJob() { try { var client = new GoogleCloudPrintClient(provider, token); var listRequest = new ListRequest { Proxy = proxy }; var listResponse = client.ListPrinterAsync(listRequest).Result; if (listResponse.Printers != null && listResponse.Printers.Any()) { for (int i = 0; i < listResponse.Printers.Count(); i++) { Console.WriteLine($"{i + 1}. {listResponse.Printers.ElementAt(i).DisplayName}"); } // Choose printer Console.Write("Please choose a printer to fetch job: "); int printerOption = -1; if (int.TryParse(Console.ReadLine(), out printerOption)) { var printer = listResponse.Printers.ElementAt(printerOption - 1); var fetchRequest = new FetchRequest { PrinterId = printer.Id }; var fetchResponse = client.FetchJobAsync(fetchRequest).Result; if (fetchResponse.Success && fetchResponse.Jobs.Any()) { for (int i = 0; i < fetchResponse.Jobs.Count(); i++) { Console.WriteLine($"{i + 1}. {fetchResponse.Jobs.ElementAt(i).Title}"); } // Choose job on specific printer Console.Write("Please choose a print job to download: "); int printJobOption = -1; if (int.TryParse(Console.ReadLine(), out printJobOption)) { if (printJobOption == -1) { return; } var printJob = fetchResponse.Jobs.ElementAt(printJobOption - 1); if (DownloadTicket(client, printJob) && DownloadDocument(client, printJob)) { var updateRequest = new ControlRequest { JobId = printJob.Id, Status = Models.Job.LegacyJobStatus.DONE }; var updateResponse = client.UpdateJobStatusAsync(updateRequest).Result; Console.WriteLine($"Update job status: {updateResponse.Success}"); } } else { Console.WriteLine("Fail to choose print job"); } } else { Console.WriteLine("There is currently no job!"); } } } else { Console.WriteLine("There is no printer to delete!"); } } catch (System.Exception ex) { Console.WriteLine(ex.Message); } }