Jhonny Marcos Acordi Mertz 11 rokov pred
rodič
commit
ef5f5353f1

+ 1 - 1
src/main/java/br/eti/mertz/wkhtmltopdf/wrapper/Command.java

@@ -6,7 +6,7 @@ public class Command {
 	public static void main(String[] args) {
 		Pdf pdf = new Pdf();
 		
-		pdf.getParams().add(new Param("enable-javascript"), new Param("html-header", "file:///lala.html"));
+		pdf.addParam(new Param("enable-javascript"), new Param("html-header", "file:///lala.html"));
 		
 		System.out.println(pdf);
 	}

+ 5 - 4
src/main/java/br/eti/mertz/wkhtmltopdf/wrapper/Param.java

@@ -4,7 +4,7 @@ import lombok.Data;
 import lombok.NonNull;
 
 @Data
-public class Param{
+public class Param {
 
 	@NonNull
 	private String key;
@@ -15,15 +15,16 @@ public class Param{
 		this.key = key;
 		this.value = value;
 	}
-	
+
 	public Param(String key) {
 		this(key, null);
 	}
 
 	public String toString() {
 		StringBuilder sb = new StringBuilder().append(Symbol.separator)
-				.append(Symbol.param).append(key).append(Symbol.separator)
-				.append(value);
+				.append(Symbol.param).append(key);
+		if (value != null)
+			sb.append(Symbol.separator).append(value);
 		return sb.toString();
 	}
 

+ 36 - 13
src/main/java/br/eti/mertz/wkhtmltopdf/wrapper/Pdf.java

@@ -2,26 +2,34 @@ package br.eti.mertz.wkhtmltopdf.wrapper;
 
 import java.io.File;
 import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
 
+import br.eti.mertz.wkhtmltopdf.wrapper.options.GlobalOption;
 import lombok.Data;
 
 @Data
 public class Pdf implements PdfService {
 
 	private String wkhtmlpdf;
-	private Params params;
+	private List<Param> params;
 
-	public Pdf(String wkhtmltopdf, Params params) {
+	public Pdf(String wkhtmltopdf, List<Param> params) {
 		this.wkhtmlpdf = wkhtmltopdf;
 		this.params = params;
 	}
 
-	public Pdf(Params params) {
+	public Pdf(List<Param> params) {
 		this("wkhtmltopdf", params);
 	}
 
+	public Pdf(Param... params) {
+		this("wkhtmltopdf", Arrays.asList(params));
+	}
+
 	public Pdf() {
-		this("wkhtmltopdf", new Params());
+		this("wkhtmltopdf", new ArrayList<Param>());
 	}
 
 	/**
@@ -29,7 +37,6 @@ public class Pdf implements PdfService {
 	 */
 	public void addPage(String page) {
 		// TODO Auto-generated method stub
-
 	}
 
 	/**
@@ -37,7 +44,6 @@ public class Pdf implements PdfService {
 	 */
 	public void addCover(String cover) {
 		// TODO Auto-generated method stub
-
 	}
 
 	/**
@@ -45,27 +51,44 @@ public class Pdf implements PdfService {
 	 */
 	public void addToc() {
 		// TODO Auto-generated method stub
+	}
+
+	public void addParam(Param param) {
+		params.add(param);
+	}
 
+	public void addParam(Param... params) {
+		for (Param param : params) {
+			addParam(param);
+		}
 	}
 
 	/**
 	 * TODO save file and returns
-	 * @throws IOException 
-	 * @throws InterruptedException 
+	 * 
+	 * @throws IOException
+	 * @throws InterruptedException
 	 */
 	public File saveAs(String path) throws IOException, InterruptedException {
-
 		Runtime rt = Runtime.getRuntime();
-		Process proc = rt.exec(this.toString());
-		
+		Process proc = rt.exec(this.toString() + path);
+
 		proc.waitFor();
 
 		return new File(path);
 	}
 
 	public String toString() {
-		StringBuilder sb = new StringBuilder(wkhtmlpdf).append(params);
-		return sb.toString();
+		StringBuilder sb = new StringBuilder();
+		for (Param param : params) {
+			sb.append(param);
+		}
+
+		return new StringBuilder(wkhtmlpdf).append(sb.toString()).toString();
+	}
+
+	public void addParam(GlobalOption option) {
+		addParam(new Param(option.toString()));
 	}
 
 }

+ 20 - 0
src/main/java/br/eti/mertz/wkhtmltopdf/wrapper/annotations/WkHtmlToPdf.java

@@ -0,0 +1,20 @@
+package br.eti.mertz.wkhtmltopdf.wrapper.annotations;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ ElementType.TYPE })
+@Documented
+public @interface WkHtmlToPdf {
+
+	String command() default "wkhtmltopdf";
+	
+	
+	
+	
+
+}

+ 23 - 0
src/main/java/br/eti/mertz/wkhtmltopdf/wrapper/builder/CommandBuilder.java

@@ -0,0 +1,23 @@
+package br.eti.mertz.wkhtmltopdf.wrapper.builder;
+
+import br.eti.mertz.wkhtmltopdf.wrapper.Pdf;
+import br.eti.mertz.wkhtmltopdf.wrapper.options.GlobalOption;
+
+public class CommandBuilder {
+
+	private Pdf pdf;
+
+	public CommandBuilder() {
+		pdf = new Pdf();
+	}
+
+	public CommandBuilder collate() {
+		pdf.addParam(GlobalOption.COLLATE);
+		return this;
+	}
+
+	public Pdf toPdf() {
+		return pdf;
+	}
+
+}

+ 12 - 0
src/main/java/br/eti/mertz/wkhtmltopdf/wrapper/builder/PdfService.java

@@ -0,0 +1,12 @@
+package br.eti.mertz.wkhtmltopdf.wrapper.builder;
+
+import java.io.File;
+
+import br.eti.mertz.wkhtmltopdf.wrapper.Command;
+
+public interface PdfService {
+	
+	File execute(Command command){
+		
+	}
+}

+ 20 - 0
src/main/java/br/eti/mertz/wkhtmltopdf/wrapper/options/GlobalOption.java

@@ -0,0 +1,20 @@
+package br.eti.mertz.wkhtmltopdf.wrapper.options;
+
+public enum GlobalOption {
+
+	COLLATE("collate");
+	
+	//outros
+
+	private String name;
+
+	private GlobalOption(String name) {
+		this.name = name;
+	}
+
+	@Override
+	public String toString() {
+		return this.name;
+	}
+
+}