[JAVA] Ich habe versucht, OnlineConverter mit SpringBoot + JODConverter zu verwenden

Überblick

Ein Memo bei Verwendung von jodConverter mit OnlineConverter. Da SpringBoot verwendet wurde, wird es mit JODConverter Spring Boot Starter implementiert.

Umgebung

Implementierung des OnlineConverter-Aufrufers

application.yml


jodconverter:
  online:
    enabled: true
    url:[Online Converter Server URL]

Implementierung des Online Converter-Servers

application.yml


jodconverter:
  enabled: true
  officeHome:[LibreOffice-Installationsziel]
@RestController
public class SampleController {
  @Autowired
  private DocumentConverter documentConverter;

  @RequestMapping(path = "/api/jodconverter/lool/convert-to/{outputExtension}", method = RequestMethod.POST)
  public Resource convert(
      @RequestParam("data") MultipartFile file,
      @PathVariable("outputExtension") String outputExtension
  ) throws IOException, OfficeException {
    //Holen Sie sich vor der Konvertierung Dateiinformationen
    String inputExtension = FilenameUtils.getExtension(file.getOriginalFilename());
    DocumentFormatRegistry registry = this.documentConverter.getFormatRegistry();
    DocumentFormat inputFormat = registry.getFormatByExtension(inputExtension);
    if (inputFormat == null) {
      inputFormat = registry.getFormatByExtension("xlsx");
    }

    //Erweiterungseinstellung nach der Konvertierung
    DocumentFormat outputFormat = registry.getFormatByExtension(outputExtension);

    //Umwandlungsprozess
    try (
        InputStream is = file.getInputStream();
        ByteArrayOutputStream os = new ByteArrayOutputStream();
    ) {
      this.documentConverter.convert(is).as(inputFormat).to(os).as(outputFormat).execute();
      return new ByteArrayResource(os.toByteArray());
    } catch (Exception e) {
      e.printStackTrace();
    }
    return null;
  }
}

Zusammenfassung

Ich hatte noch nie die Möglichkeit, OnlineConverter zu verwenden, daher habe ich gelernt, wie man es verwendet.

LocalConverter ist jedoch einfacher zu installieren, da bei Verwendung von OnlineConverter keine Serverimplementierung erfolgt. Ich frage mich, ob ich es verwenden werde, wenn es keinen guten Grund gibt. .. ..

Recommended Posts

Ich habe versucht, OnlineConverter mit SpringBoot + JODConverter zu verwenden
Ich habe versucht, JOOQ mit Gradle zu verwenden
Ich habe versucht, Realm mit Swift UI zu verwenden
Ich habe versucht, Scalar DL mit Docker zu verwenden
Ich habe versucht, OpenCV mit Java + Tomcat zu verwenden
Ich habe versucht, Gson zu benutzen
Ich habe versucht, TestNG zu verwenden
Ich habe versucht, Galasa zu benutzen
Ich habe mit Ruby einen Blackjack gemacht (ich habe versucht, Minitest zu verwenden)
Ich habe DI mit Ruby versucht
Ich habe versucht, Azure Cloud-Init zu verwenden
Ich habe versucht, Apache Wicket zu verwenden
Ich habe versucht, Java REPL zu verwenden
Ich habe UPSERT mit PostgreSQL ausprobiert.
Ich habe BIND mit Docker ausprobiert
Ich habe versucht, mit Swagger mit Spring Boot zu beginnen
Ich habe versucht, die CameraX-Bibliothek mit Android Java Fragment zu verwenden
Ich habe jetzt versucht, Anakia + Jing zu verwenden
Ich habe Angular Tutorial + SpringBoot + PostgreSQL ausprobiert
Ich habe versucht, Spring + Mybatis + DbUnit zu verwenden
Ich habe eine morphologische Analyse mit MeCab versucht
Ich habe versucht, mit Java zu interagieren
Ich habe versucht, die Java8 Stream API zu verwenden
Ich habe versucht, JWT in Java zu verwenden
Ich habe GraphQL mit Spring Boot ausprobiert
[Android] Ich habe versucht, das Koordinatorlayout zu verwenden.
Ich habe Flyway mit Spring Boot ausprobiert
Ich habe versucht, Pari GP Container zu verwenden
Ich habe versucht, WebAssembly Stadio (Version 2018/4/17) zu verwenden.
Ich habe versucht, Slim mit Scaffold anzupassen
Ich habe versucht, Java Memo LocalDate zu verwenden
Ich habe versucht, Google HttpClient von Java zu verwenden
Ich habe versucht, mithilfe von JDBC Template mit Spring MVC eine Verbindung zu MySQL herzustellen
Ich habe versucht, die Elasticsearch-API in Java zu verwenden
Ich habe versucht, das Java-Diagnosetool Arthas zu verwenden
Ich habe versucht, UICollectionViewListCell zu verwenden, das von Xcode12 hinzugefügt wurde.
Ich habe versucht, mit Web Assembly zu beginnen
Ich habe mit Studyplus zeitsparendes Management-Lernen versucht.
Es ist neu, aber ich habe versucht, Groonga zu verwenden
Ich habe versucht, ein wenig mit BottomNavigationView zu spielen ①
Ich habe Lazy Initialization mit Spring Boot 2.2.0 ausprobiert
Verwenden Sie SSIServlet mit dem in SpringBoot 2.2.4 integrierten Tomcat
01. Ich habe versucht, eine Umgebung mit SpringBoot + IntelliJ + MySQL (MyBatis) (Windows 10) zu erstellen.
Ich habe versucht, Junit mit Mac VScode Maven zu verwenden
[Für Anfänger] Ich habe versucht, DBUnit mit Eclipse zu verwenden
Ich habe versucht, AdoptOpenJDK 11 (11.0.2) mit dem Docker-Image zu überprüfen
Ich habe versucht, eine Standardauthentifizierung mit Java durchzuführen
Ich habe versucht, die Federbeinkonfiguration mit Coggle zu verwalten
[Für Anfänger] Ich habe versucht, JUnit 5 mit Eclipse zu verwenden
Ich habe versucht, Anmeldeinformationen mit JMX zu verwalten
[Android] Ich habe SQLite beendet und versucht, Realm zu verwenden
[Java] Ich habe versucht, über den Verbindungspool eine Verbindung mit Servlet (Tomcat) & MySQL & Java herzustellen
Ich habe es mit Spring versucht.
[API] Ich habe versucht, die Postleitzahlensuch-API zu verwenden
Ich habe versucht, Tomcat zu setzen
Ich habe Eclipse MicroProfile OpenAPI mit WildFly Swarm ausprobiert
Ich habe youtubeDataApi ausprobiert.
Ich habe versucht, ① umzugestalten