将Java代码转换为Clojure。创建打开文档文件的示例

问题描述 投票:-2回答:1
import java.net.URI;

import org.odftoolkit.simple.TextDocument;
import org.odftoolkit.simple.table.Cell;
import org.odftoolkit.simple.table.Table;
import org.odftoolkit.simple.text.list.List;

public class HelloWorld {
    public static void main(String[] args) {
        TextDocument outputOdt;
    try {
        outputOdt = TextDocument.newTextDocument();

        // add image
        outputOdt.newImage(new URI("odf-logo.png"));

        // add paragraph
        outputOdt.addParagraph("Hello World, Hello Simple ODF!");

        // add list
        outputOdt.addParagraph("The following is a list.");
        List list = outputOdt.addList();
        String[] items = {"item1", "item2", "item3"};
        list.addItems(items);

        // add table
        Table table = outputOdt.addTable(2, 2);
        Cell cell = table.getCellByPosition(0, 0);
        cell.setStringValue("Hello World!");

        outputOdt.save("HelloWorld.odt");
    } catch (Exception e) {
        System.err.println("ERROR: unable to create output file.");
    }
  }
 }
java clojure libreoffice
1个回答
0
投票

您将需要在依赖项中导入ODF Kit库:

 [org.odftoolkit/simple-odf "0.9.0-RC1"]]

Clojure版本:

(ns clj-odf.core
 (:import java.net.URI
          org.odftoolkit.simple.TextDocument
          org.odftoolkit.simple.table.Cell
          org.odftoolkit.simple.table.Table
          org.odftoolkit.simple.text.list.List))

(defn generate-odf [filename]
  (let [outputOdt (TextDocument/newTextDocument)
        uri       (URI. "/home/manuel/Documents/lisplogo_fancy_256.png")
        items     (into-array String ["Primer Asunto" "Segundo punto" "Tercer negocio" "Too long list"])]
 (try
   (println "Generating ODF file")
   (.addParagraph outputOdt "Hello World, taradazo Hello Simple ODF!")
   (.newImage outputOdt uri)
   (.addParagraph outputOdt "Hello World, taradazo Hello Simple ODF AFTER IMAGE!")
   (.addParagraph outputOdt "The following is a list.")

   (.addItems (.addList outputOdt) items)

   (.setStringValue (.getCellByPosition (.addTable outputOdt 2 2) 0 1) "I'm in the table!")

   (.save outputOdt filename)
   (catch Exception e (str "ERROR: unable to create output file: " (.getMessage e))))))

结果:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.