[JAVA] Imprimez un PDF à l'aide de Google Cloud Print. (GoogleAPI)

Qu'est-ce que Google Cloud Print?

Un service qui vous permet d'enregistrer le jeu d'imprimantes en tant que terminal dans votre compte Google et d'imprimer depuis un autre terminal via le cloud.

--Paramètres requis pour l'impression --Obtenir un compte Google --Installez le navigateur Chrome

Flux de processus

  1. Acquisition du jeton d'actualisation (non nécessaire une fois acquis)
  2. Obtenez un jeton d'accès
  3. Opération Google CloudPrint (obtention d'une liste d'imprimantes, exécution d'une impression en spécifiant un ID d'imprimante)

Préparation préalable

Enregistrez l'imprimante Google CloudPrint en vous reportant à ce qui suit. https://www.google.com/cloudprint/learn/

Obtenez l'ID client et le secret de l'API Google

Accédez à GoogleCloudPratform et enregistrez vos informations d'identification.

https://console.cloud.google.com/

Sélectionnez [API et services] → [Informations d'identification] → [Créer des informations d'identification] → [ID client OAuth] image.png

Cette fois, c'est un essai, alors sélectionnez [Autre] image.png

Obtenez l'ID client et le secret client (seront utilisés plus tard) image.png

Obtenez l'autorisation de Google CloudPrint et le code à définir dans l'application

Définissez l'URL de l'ID client obtenu et accédez directement au navigateur https://accounts.google.com/o/oauth2/auth?redirect_uri=oob&response_type=code&client_id=<ここに上記で取得したクライアントIDを指定>&scope=https://www.googleapis.com/auth/cloudprint

Sélectionnez [Autoriser] image.png image.png

Obtenez le code (sera utilisé plus tard) image.png

Impression automatique avec l'API Google

Cette fois, je vais l'exécuter en utilisant Unirest de Java. Prenez et décrivez uniquement les processus importants

getRefreshToken


		HttpResponse<JsonNode> res = Unirest.post("https://www.googleapis.com/oauth2/v3/token")
				.field("code", code) //Définissez le code obtenu à l'avance
				.field("client_id", client_id)  //Définissez l'ID client obtenu à l'avance
				.field("client_secret", client_secret)  //Définir le secret client obtenu à l'avance
				.field("grant_type", "authorization_code")
				.field("redirect_uri", "oob")
				.asJson();

Obtenez un jeton d'actualisation. Une fois que vous utilisez le code, vous ne pouvez plus l'utiliser, donc si vous ne connaissez pas le jeton d'actualisation, vous devez obtenir le code à l'avance.

getAccessToken


		HttpResponse<JsonNode> res = Unirest.post("https://www.googleapis.com/oauth2/v3/token")
				.field("client_id", client_id)  //Définissez l'ID client obtenu à l'avance
				.field("client_secret", client_secret)  //Définir le secret client obtenu à l'avance
				.field("grant_type", "refresh_token")
				.field("refresh_token", refresh_token)  //Définir le jeton d'actualisation acquis par getRefreshToken
				.asJson();

Obtenez un jeton d'accès. Obtenez un jeton d'accès du jeton d'actualisation à chaque fois. Configurez pour obtenir un jeton d'accès chaque fois que vous accédez à l'imprimante.

getPrinters


		HttpResponse<JsonNode> res = Unirest.get("https://www.google.com/cloudprint/search")
				.header("Authorization", token_type + " " + access_token)
				.asJson();

Obtenez la liste des imprimantes définies dans Google Cloud Print.

submitFile


		HttpResponse<JsonNode> res = Unirest.post("https://www.google.com/cloudprint/submit")
				.header("Authorization", token_type + " " + access_token)
				.field("printerid", printerid)  //Définir l'ID de l'imprimante: le lecteur Google par défaut est[__google__docs]est.
				.field("title", file.getName())
				.field("ticket", gson.toJson(new TicketBean()))
				.field("content", file)
				.asJson();

Envoyez une demande à Google CloudPrint pour imprimer un fichier PDF local. Le fichier est de type java.io.File.

Vous pouvez imprimer en exécutant ces processus dans l'ordre.

finalement

Par exemple, un processus de création dynamique de PDF est implémenté côté serveur et l'impression est effectuée sur plusieurs imprimantes côté client. Ce sera un mécanisme qui peut être facilement réalisé.

C'est difficile maintenant car je dois enregistrer l'imprimante dans mon compte Finalement, le jour peut venir où vous n'avez pas besoin de fax.

Recommended Posts

Imprimez un PDF à l'aide de Google Cloud Print. (GoogleAPI)
Essayez d'utiliser Python avec Google Cloud Functions
Procédure de transcription vocale à l'aide de l'API Google Cloud Speech
J'ai essayé d'utiliser l'API Google Cloud Vision
[GoogleCloudPlatform] Utiliser l'API Google Cloud avec la bibliothèque cliente d'API
Procédure de transcription vocale à l'aide de Python et de l'API Google Cloud Speech
Essayez de juger des photos de plats à l'aide de l'API Google Cloud Vision
Publions l'API de super résolution à l'aide de Google Cloud Platform
Prédiction d'images dans le cloud à l'aide de convLSTM
Qu'est-ce que Google Cloud Dataflow?
Diffusez la reconnaissance vocale à l'aide de l'API gRPC Google Cloud Speech avec python3 sur Mac!