Examiner la liste des polices disponibles dans AWS Lambda + Java

Aperçu

Code source

Liste des codes sources

├── pom.xml
└── src
    └── main
        └── java
            └── com
                └── example
                    └── FontList.java

FontList.java

Un programme Java qui récupère les informations sur les polices disponibles.

package com.example;

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;

import java.awt.Font;
import java.awt.GraphicsEnvironment;
import java.util.Arrays;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;

public class FontList implements RequestHandler<Map<String, Object>, Map<String, Object>> {

  /**
   *Il s'agit du point d'entrée lors de l'exécution en tant qu'application Java autonome.
   *
   * @param args non utilisé
   */
  public static void main(String[] args) {

    Map<String, Object> output = new FontList().invoke();

    //Nom de la police
    for (String name : (String[]) output.get("names")) {
      System.out.println(name);
    }

    //Nom de la police et nombre de glyphes
    for (String info : (String[]) output.get("numGlyphs")) {
      System.out.println(info);
    }

    //Informations système
    System.out.println(output.get("system"));
  }

  /**
   *Point d'entrée lors de l'exécution de la fonction AWS Lambda(Méthode du gestionnaire)est.
   *
   * @param input Données d'entrée
   * @param context Objet de contexte AWS Lambda
   * @renvoyer les données de sortie
   */
  @Override
  public Map<String, Object> handleRequest(Map<String, Object> input, Context context) {
    return invoke();
  }

  /**
   *Renvoie des informations sur les polices disponibles.
   *
   * @retour Informations sur les polices disponibles
   */
  private static Map<String, Object> invoke() {

    //Obtenez une liste des polices disponibles
    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
    Font[] allFonts = ge.getAllFonts();

    //Résumez les informations de police que vous souhaitez afficher
    String[] names = Arrays.stream(allFonts)
      .map(Font::getName) //Nom de la police
      .toArray(String[]::new);

    //Disposer par ordre croissant du numéro de glyphe
    String[] numGlyphs = Arrays.stream(allFonts)
      .sorted(Comparator.comparing(Font::getNumGlyphs)) //Trier par numéro de glyphe
      .map(f -> f.getName() + ": " + f.getNumGlyphs()) //Nom de la police et nombre de glyphes
      .toArray(String[]::new);

    //Obtenir des informations système
    Map system = new HashMap<String, String>();
    system.put("os.name", getSystemProperty("os.name"));
    system.put("os.arch", getSystemProperty("os.arch"));
    system.put("os.version", getSystemProperty("os.version"));
    system.put("java.version", getSystemProperty("java.version"));
    system.put("java.specification.version", getSystemProperty("java.specification.version"));
    system.put("java.runtime.name", getSystemProperty("java.runtime.name"));
    system.put("java.runtime.version", getSystemProperty("java.runtime.version"));
    system.put("java.vm.name", getSystemProperty("java.vm.name"));
    system.put("java.vm.version", getSystemProperty("java.vm.version"));

    //Créer des données de sortie
    Map output = new HashMap<String, Object>();
    output.put("names", names);
    output.put("numGlyphs", numGlyphs);
    output.put("system", system);
    return output;
  }

  /**
   *Obtient les propriétés système indiquées par la clé spécifiée.
   *
   * @param key Le nom de la propriété système
   * @return Valeur de chaîne de propriété système(Null si aucune propriété avec cette clé n'existe)
   */
  private static String getSystemProperty(String key) {
    try {
      return System.getProperty(key);
    } catch (SecurityException e) {
      return e.toString();
    }
  }
}

pom.xml

Fichier de configuration pour la construction avec Maven.

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.example</groupId>
  <artifactId>fontlist</artifactId>
  <packaging>jar</packaging>
  <version>1.0</version>
  <name>fontlist</name>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

  <dependencies>
    <!-- https://mvnrepository.com/artifact/com.amazonaws/aws-lambda-java-core -->
    <dependency>
      <groupId>com.amazonaws</groupId>
      <artifactId>aws-lambda-java-core</artifactId>
      <version>1.2.0</version>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <!-- https://maven.apache.org/plugins/maven-shade-plugin/ -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>3.2.1</version>
        <configuration>
          <createDependencyReducedPom>false</createDependencyReducedPom>
        </configuration>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

</project>

Résultat de l'exécution sur AWS Lambda + Java8

{
  "names": [
    "Bitstream Charter",
    "Bitstream Charter Bold",
    "Bitstream Charter Bold Italic",
    "Bitstream Charter Italic",
    "Century Schoolbook L Bold",
    "Century Schoolbook L Bold Italic",
    "Century Schoolbook L Italic",
    "Century Schoolbook L Roman",
    "Courier 10 Pitch",
    "Courier 10 Pitch Bold",
    "Courier 10 Pitch Bold Italic",
    "Courier 10 Pitch Italic",
    "Cursor",
    "DejaVu Sans",
    "DejaVu Sans Bold",
    "DejaVu Sans Bold Oblique",
    "DejaVu Sans Condensed",
    "DejaVu Sans Condensed Bold",
    "DejaVu Sans Condensed Bold Oblique",
    "DejaVu Sans Condensed Oblique",
    "DejaVu Sans ExtraLight",
    "DejaVu Sans Oblique",
    "DejaVu Serif",
    "DejaVu Serif Bold",
    "DejaVu Serif Bold Italic",
    "DejaVu Serif Condensed",
    "DejaVu Serif Condensed Bold",
    "DejaVu Serif Condensed Bold Italic",
    "DejaVu Serif Condensed Italic",
    "DejaVu Serif Italic",
    "Dialog.bold",
    "Dialog.bolditalic",
    "Dialog.italic",
    "Dialog.plain",
    "DialogInput.bold",
    "DialogInput.bolditalic",
    "DialogInput.italic",
    "DialogInput.plain",
    "Dingbats ",
    "Hershey Gothic- English",
    "Hershey Gothic- German",
    "Hershey Gothic- Italian",
    "Hershey Plain- Duplex",
    "Hershey Plain- Duplex- Italic",
    "Hershey Plain- Triplex",
    "Hershey Plain- Triplex- Italic",
    "Hershey Script- Complex",
    "Hershey Script- Simplex",
    "Monospaced.bold",
    "Monospaced.bolditalic",
    "Monospaced.italic",
    "Monospaced.plain",
    "Nimbus Mono L Bold",
    "Nimbus Mono L Bold Oblique",
    "Nimbus Mono L Regular",
    "Nimbus Mono L Regular Oblique",
    "Nimbus Roman No9 L Medium",
    "Nimbus Roman No9 L Medium Italic",
    "Nimbus Roman No9 L Regular",
    "Nimbus Roman No9 L Regular Italic",
    "Nimbus Sans L Bold",
    "Nimbus Sans L Bold Condensed",
    "Nimbus Sans L Bold Condensed Italic",
    "Nimbus Sans L Bold Italic",
    "Nimbus Sans L Regular",
    "Nimbus Sans L Regular Condensed",
    "Nimbus Sans L Regular Condensed Italic",
    "Nimbus Sans L Regular Italic",
    "SansSerif.bold",
    "SansSerif.bolditalic",
    "SansSerif.italic",
    "SansSerif.plain",
    "Serif.bold",
    "Serif.bolditalic",
    "Serif.italic",
    "Serif.plain",
    "Standard Symbols L",
    "URW Bookman L Demi Bold",
    "URW Bookman L Demi Bold Italic",
    "URW Bookman L Light",
    "URW Bookman L Light Italic",
    "URW Chancery L Medium Italic",
    "URW Gothic L Book",
    "URW Gothic L Book Oblique",
    "URW Gothic L Demi",
    "URW Gothic L Demi Oblique",
    "URW Palladio L Bold",
    "URW Palladio L Bold Italic",
    "URW Palladio L Italic",
    "URW Palladio L Roman",
    "Utopia Bold",
    "Utopia Bold Italic",
    "Utopia Italic",
    "Utopia Regular"
  ],
  "system": {
    "java.runtime.name": "OpenJDK Runtime Environment",
    "java.specification.version": "1.8",
    "java.version": "1.8.0_201",
    "java.vm.version": "25.201-b09",
    "os.arch": "amd64",
    "java.runtime.version": "1.8.0_201-b09",
    "os.name": "Linux",
    "java.vm.name": "OpenJDK 64-Bit Server VM",
    "os.version": "4.14.133-97.112.amzn2.x86_64"
  },
  "numGlyphs": [
    "Cursor: 155",
    "Standard Symbols L: 190",
    "Dingbats : 203",
    "Hershey Plain- Duplex: 224",
    "Hershey Plain- Duplex- Italic: 224",
    "Hershey Plain- Triplex: 224",
    "Hershey Plain- Triplex- Italic: 224",
    "Hershey Script- Complex: 224",
    "Hershey Script- Simplex: 224",
    "Hershey Gothic- English: 228",
    "Hershey Gothic- German: 228",
    "Hershey Gothic- Italian: 228",
    "Bitstream Charter: 229",
    "Bitstream Charter Bold: 229",
    "Bitstream Charter Bold Italic: 229",
    "Bitstream Charter Italic: 229",
    "Courier 10 Pitch: 229",
    "Courier 10 Pitch Bold: 229",
    "Courier 10 Pitch Bold Italic: 229",
    "Courier 10 Pitch Italic: 229",
    "Utopia Bold: 229",
    "Utopia Bold Italic: 229",
    "Utopia Italic: 229",
    "Utopia Regular: 229",
    "URW Chancery L Medium Italic: 503",
    "URW Bookman L Demi Bold Italic: 512",
    "URW Bookman L Demi Bold: 519",
    "URW Bookman L Light Italic: 519",
    "DialogInput.bolditalic: 522",
    "Monospaced.bolditalic: 522",
    "Nimbus Mono L Bold Oblique: 522",
    "URW Palladio L Italic: 522",
    "URW Palladio L Bold: 523",
    "URW Palladio L Bold Italic: 523",
    "URW Palladio L Roman: 525",
    "DialogInput.italic: 533",
    "Monospaced.italic: 533",
    "Nimbus Mono L Regular Oblique: 533",
    "Nimbus Roman No9 L Medium Italic: 535",
    "Nimbus Roman No9 L Regular Italic: 535",
    "DialogInput.bold: 540",
    "Monospaced.bold: 540",
    "Nimbus Mono L Bold: 540",
    "URW Bookman L Light: 545",
    "Nimbus Sans L Bold Condensed: 561",
    "Century Schoolbook L Bold: 563",
    "Century Schoolbook L Bold Italic: 563",
    "Century Schoolbook L Italic: 563",
    "Century Schoolbook L Roman: 563",
    "DialogInput.plain: 563",
    "Monospaced.plain: 563",
    "Nimbus Mono L Regular: 563",
    "Nimbus Roman No9 L Medium: 563",
    "Nimbus Roman No9 L Regular: 563",
    "Nimbus Sans L Bold: 563",
    "Nimbus Sans L Bold Condensed Italic: 563",
    "Nimbus Sans L Bold Italic: 563",
    "Nimbus Sans L Regular: 563",
    "Nimbus Sans L Regular Condensed: 563",
    "Nimbus Sans L Regular Condensed Italic: 563",
    "Nimbus Sans L Regular Italic: 563",
    "URW Gothic L Book: 563",
    "URW Gothic L Book Oblique: 563",
    "URW Gothic L Demi: 563",
    "URW Gothic L Demi Oblique: 563",
    "DejaVu Sans ExtraLight: 1915",
    "DejaVu Serif Bold Italic: 3320",
    "DejaVu Serif Condensed Bold Italic: 3320",
    "Serif.bolditalic: 3320",
    "DejaVu Serif Bold: 3321",
    "DejaVu Serif Condensed Bold: 3321",
    "Serif.bold: 3321",
    "DejaVu Serif: 3399",
    "DejaVu Serif Condensed: 3399",
    "Serif.plain: 3399",
    "DejaVu Serif Condensed Italic: 3449",
    "DejaVu Serif Italic: 3449",
    "Serif.italic: 3449",
    "DejaVu Sans Bold Oblique: 5085",
    "DejaVu Sans Condensed Bold Oblique: 5085",
    "Dialog.bolditalic: 5085",
    "SansSerif.bolditalic: 5085",
    "DejaVu Sans Condensed Oblique: 5155",
    "DejaVu Sans Oblique: 5155",
    "Dialog.italic: 5155",
    "SansSerif.italic: 5155",
    "DejaVu Sans Bold: 5854",
    "DejaVu Sans Condensed Bold: 5854",
    "Dialog.bold: 5854",
    "SansSerif.bold: 5854",
    "DejaVu Sans: 5928",
    "DejaVu Sans Condensed: 5928",
    "Dialog.plain: 5928",
    "SansSerif.plain: 5928"
  ]
}

Matériel de référence

Recommended Posts

Examiner la liste des polices disponibles dans AWS Lambda + Java
Examiner les informations système de l'environnement d'exploitation AWS Lambda en Java
Examinez la liste des ID de fuseau horaire disponibles dans la classe Java ZoneId
Trouvez les valeurs maximum et minimum parmi les 5 nombres saisis en Java (correction ver)
[Java] Supprimer les éléments de la liste
Liste des membres ajoutés dans Java 9
Liste des types ajoutés dans Java 9
L'origine des expressions Java lambda
Je veux savoir quelle version de java le fichier jar que j'ai est disponible
Obtenez le résultat de POST en Java
L'histoire de l'écriture de Java dans Emacs
Comment savoir quelle version Java d'un fichier de classe a été compilée
Comment trouver le nombre total de pages lors de la pagination en Java
Trouvez le maximum et le minimum des cinq nombres saisis en Java
L'histoire de la comparaison de chaînes de bas niveau en Java
[Java] Gestion des Java Beans dans la chaîne de méthodes
À propos de l'idée des classes anonymes en Java
L'histoire de l'apprentissage de Java dans la première programmation
Mesurer la taille d'un dossier avec Java
Ressentez le passage du temps même à Java
Importer des fichiers de la même hiérarchie en Java
Code pour supprimer tous les fichiers du préfixe spécifié dans AWS S3 (Java)
Valider le jeton d'ID d'un utilisateur authentifié par AWS Cognito en Java
Obtenez l'URL de la destination de la redirection HTTP en Java
[Pour les débutants] Comprendre rapidement les bases de Java 8 lambda
[Java] Trier la liste à l'aide de flux et d'expressions lambda
Utiliser des expressions Java lambda en dehors de l'API Stream
[Java] Récupère le fichier dans le fichier jar quel que soit l'environnement
Les objets de la liste étaient des références, non? Confirmation de
Modifier la qualité de stockage des images JPEG en Java
Trouvez la valeur approximative de log (1 + x) avec Swift
Récapitulez les éléments supplémentaires de la classe Optional dans Java 9
J'ai essayé de découvrir ce qui avait changé dans Java 9
A été effectué dans l'année de base de la semaine calendaire Java
Une explication rapide des cinq types de statique Java
Découvrez tous les ID de fuseau horaire pris en charge par la classe Java TimeZone
Créer un SlackBot avec AWS lambda et API Gateway en Java
Comptez le nombre de chiffres après la virgule décimale en Java
Un programme qui compte le nombre de mots dans une liste
Comment dériver le dernier jour du mois en Java
Trouvez le nombre de jours dans un mois avec Kotlin
Problème de ne pas trouver javax.annotation.Généré en Java 11
Rechercher un sous-ensemble en Java
Agrégation de listes en Java (Collectors.groupingBy)
Implémentation Java de tri-tree
Découvrez la taille maximale du tas lorsque vous spécifiez l'option -Xmx ou -XX: MaxRAM en Java
[Java] Obtenez les dates des derniers lundi et dimanche dans l'ordre
Sortie de la différence entre chaque champ de deux objets en Java
J'ai essayé le type d'entrée / sortie de Java Lambda ~ Map edition ~
La milliseconde définie dans /lib/calendars.properties de Java jre est UTC
Convertir un tableau de chaînes en une liste d'entiers en Java
Obtenez l'URL publique du fichier privé de Flickr en Java
Créons une application TODO en Java 5 Changer l'affichage de TODO
Comment obtenir la longueur d'un fichier audio avec Java
Comment incrémenter la valeur de Map sur une ligne en Java
Trouvez la différence entre les types de liste
Devinez le code de caractère en Java
Exceptions rencontrées dans le kit AWS SDK