Looly 5 年之前
父节点
当前提交
59d155e00f

+ 46 - 3
hutool-poi/src/main/java/cn/hutool/poi/ofd/OfdWriter.java

@@ -7,29 +7,72 @@ import org.ofdrw.layout.element.Div;
 import org.ofdrw.layout.element.Paragraph;
 
 import java.io.Closeable;
+import java.io.File;
+import java.io.OutputStream;
 import java.io.Serializable;
 import java.nio.file.Path;
 
+/**
+ * OFD文件生成器
+ *
+ * @author looly
+ * @since 5.5.3
+ */
 public class OfdWriter implements Serializable, Closeable {
 	private static final long serialVersionUID = 1L;
 
-	private final Path destFile;
 	private final OFDDoc doc;
 
+	/**
+	 * 构造
+	 *
+	 * @param file 生成的文件
+	 */
+	public OfdWriter(File file){
+		this(file.toPath());
+	}
+
+	/**
+	 * 构造
+	 *
+	 * @param file 生成的文件
+	 */
 	public OfdWriter(Path file){
-		this.destFile = file;
 		this.doc = new OFDDoc(file);
 	}
 
+	/**
+	 * 构造
+	 *
+	 * @param out 需要输出的流
+	 */
+	public OfdWriter(OutputStream out){
+		this.doc = new OFDDoc(out);
+	}
+
+	/**
+	 * 增加文本内容
+	 *
+	 * @param font 字体
+	 * @param texts 文本
+	 * @return this
+	 */
 	public OfdWriter addText(Font font, String... texts){
 		final Paragraph paragraph = new Paragraph();
-		paragraph.setDefaultFont(font);
+		if(null != font){
+			paragraph.setDefaultFont(font);
+		}
 		for (String text : texts) {
 			paragraph.add(text);
 		}
 		return add(paragraph);
 	}
 
+	/**
+	 * 增加节点,
+	 * @param div 节点,可以是段落、Canvas、Img或者填充
+	 * @return this
+	 */
 	public OfdWriter add(Div div){
 		this.doc.add(div);
 		return this;

+ 16 - 0
hutool-poi/src/test/java/cn/hutool/poi/ofd/OfdWriterTest.java

@@ -0,0 +1,16 @@
+package cn.hutool.poi.ofd;
+
+import cn.hutool.core.io.FileUtil;
+import org.junit.Ignore;
+import org.junit.Test;
+
+public class OfdWriterTest {
+
+	@Test
+	@Ignore
+	public void writeTest(){
+		final OfdWriter ofdWriter = new OfdWriter(FileUtil.file("d:/test/test.ofd"));
+		ofdWriter.addText(null, "测试文本");
+		ofdWriter.close();
+	}
+}