Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions java2word/src/main/java/word/w2004/Document2004.java
Original file line number Diff line number Diff line change
Expand Up @@ -254,6 +254,7 @@ public String getUri() {
+ " <w:versionOfBuiltInStylenames w:val=\"2\"/> "
+ " <w:latentStyles w:defLockedState=\"off\" w:latentStyleCount=\"276\"> "
+ " <w:lsdException w:name=\"Normal\"/> "
+ " <w:lsdException w:name=\"title 1\"/> "
+ " <w:lsdException w:name=\"heading 1\"/> "
+ " <w:lsdException w:name=\"heading 2\"/> "
+ " <w:lsdException w:name=\"heading 3\"/> "
Expand Down Expand Up @@ -401,6 +402,29 @@ public String getUri() {
+ " <w:lang w:val=\"EN-AU\" w:fareast=\"EN-US\" w:bidi=\"AR-SA\"/> "
+ " </w:rPr> "
+ " </w:style> "
+ " <w:style w:type=\"paragraph\" w:styleId=\"Title1\"> "
+ " <w:name w:val=\"title 1\"/> "
+ " <wx:uiName wx:val=\"Title 1\"/> "
+ " <w:basedOn w:val=\"Normal\"/> "
+ " <w:next w:val=\"Normal\"/> "
+ " <w:link w:val=\"Title1Char\"/> "
+ " <w:rsid w:val=\"00401F80\"/> "
+ " <w:pPr> "
+ " <w:keepNext/> "
+ " <w:keepLines/> "
+ " <w:spacing w:before=\"480\"/> "
+ " <w:outlineLvl w:val=\"0\"/> "
+ " </w:pPr> "
+ " <w:rPr> "
+ " <w:rFonts w:ascii=\"Arial\" w:fareast=\"Times New Roman\" w:h-ansi=\"Arial\"/> "
+ " <wx:font wx:val=\"Arial\"/> "
+ " <w:b/> "
+ " <w:b-cs/> "
+ " <w:color w:val=\"345A8A\"/> "
+ " <w:sz w:val=\"64\"/> "
+ " <w:sz-cs w:val=\"64\"/> "
+ " </w:rPr> "
+ " </w:style> "
+ " <w:style w:type=\"paragraph\" w:styleId=\"Heading1\"> "
+ " <w:name w:val=\"heading 1\"/> "
+ " <wx:uiName wx:val=\"Heading 1\"/> "
Expand Down Expand Up @@ -491,6 +515,21 @@ public String getUri() {
+ " <w:style w:type=\"list\" w:default=\"on\" w:styleId=\"NoList\"> "
+ " <w:name w:val=\"No List\"/> "
+ " </w:style> "
+ " <w:style w:type=\"character\" w:styleId=\"Title1Char\"> "
+ " <w:name w:val=\"Title 1 Char\"/> "
+ " <w:basedOn w:val=\"DefaultParagraphFont\"/> "
+ " <w:link w:val=\"Title1\"/> "
+ " <w:rsid w:val=\"00401F80\"/> "
+ " <w:rPr> "
+ " <w:rFonts w:ascii=\"Arial\" w:fareast=\"Times New Roman\" w:h-ansi=\"Arial\" w:cs=\"Times New Roman\"/> "
+ " <w:b/> "
+ " <w:b-cs/> "
+ " <w:color w:val=\"345A8A\"/> "
+ " <w:sz w:val=\"128\"/> "
+ " <w:sz-cs w:val=\"128\"/> "
+ " <w:lang w:val=\"EN-AU\"/> "
+ " </w:rPr> "
+ " </w:style> "
+ " <w:style w:type=\"character\" w:styleId=\"Heading1Char\"> "
+ " <w:name w:val=\"Heading 1 Char\"/> "
+ " <w:basedOn w:val=\"DefaultParagraphFont\"/> "
Expand Down
12 changes: 9 additions & 3 deletions java2word/src/main/java/word/w2004/elements/AbstractHeading.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import word.api.interfaces.IElement;
import word.api.interfaces.IFluentElementStylable;
import word.w2004.style.HeadingStyle;
import word.w2004.style.HeadingStyle.Align;

/**
* @author leonardo
Expand All @@ -17,10 +18,17 @@ public abstract class AbstractHeading<E> implements IElement, IFluentElementSty
*/
private String headingType;
private String value; //value/text for the Heading


private HeadingStyle style = new HeadingStyle();

protected AbstractHeading(String headingType, String value){
this(headingType, value, Align.LEFT);
}

protected AbstractHeading(String headingType, String value, Align align){
this.headingType = headingType;
this.value = value;
style.align(align);
}

private String template =
Expand All @@ -35,8 +43,6 @@ protected AbstractHeading(String headingType, String value){
+"\n </w:r>"
+"\n</w:p>";

private HeadingStyle style = new HeadingStyle();

@Override
public String getContent() {
if("".equals(this.value)){
Expand Down
11 changes: 8 additions & 3 deletions java2word/src/main/java/word/w2004/elements/Heading1.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,26 @@

import word.api.interfaces.IFluentElement;
import word.w2004.style.HeadingStyle;
import word.w2004.style.HeadingStyle.Align;

public class Heading1 extends AbstractHeading<HeadingStyle> implements IFluentElement<Heading1> { // implements IFluentElementStylable<HeadingStyle>

//Constructor
private Heading1(String value){
super("Heading1", value);
private Heading1(String value, Align align){
super("Heading1", value, align);
}

//this method is specific for each class. Constructor can be different...Don't know if we can make it generic
/***
* @param The value of the paragraph
* @return the Fluent @Heading1
*/
public static Heading1 with(String value, Align align) {
return new Heading1(value, align);
}

public static Heading1 with(String value) {
return new Heading1(value);
return new Heading1(value, Align.LEFT);
}

@Override
Expand Down
11 changes: 8 additions & 3 deletions java2word/src/main/java/word/w2004/elements/Heading2.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,25 @@

import word.api.interfaces.IFluentElement;
import word.w2004.style.HeadingStyle;
import word.w2004.style.HeadingStyle.Align;

public class Heading2 extends AbstractHeading<HeadingStyle> implements IFluentElement<Heading2>{

//Constructor
private Heading2(String value){
super("Heading2", value);
private Heading2(String value, Align align){
super("Heading2", value, align);
}

/***
* @param The value of the paragraph
* @return the Fluent @Heading2
*/
public static Heading2 with(String string, Align align) {
return new Heading2(string, align);
}

public static Heading2 with(String string) {
return new Heading2(string);
return new Heading2(string, Align.LEFT);
}


Expand Down
11 changes: 8 additions & 3 deletions java2word/src/main/java/word/w2004/elements/Heading3.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,26 @@

import word.api.interfaces.IFluentElement;
import word.w2004.style.HeadingStyle;
import word.w2004.style.HeadingStyle.Align;


public class Heading3 extends AbstractHeading <HeadingStyle> implements IFluentElement<Heading3>{

//Constructor
private Heading3(String value){
super("Heading3", value);
private Heading3(String value, Align align){
super("Heading3", value, align);
}

/***
* @param The value of the paragraph
* @return the Fluent @Heading2
*/
public static Heading3 with(String string, Align align) {
return new Heading3(string, align);
}

public static Heading3 with(String string) {
return new Heading3(string);
return new Heading3(string, Align.LEFT);
}

@Override
Expand Down
49 changes: 31 additions & 18 deletions java2word/src/main/java/word/w2004/elements/Image.java
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,19 @@ private void setUpSize() {
String[] wh = getOriginalWidthHeight().split("#");
String ww = wh[0];
String hh = wh[1];
try {
int h = Integer.valueOf(hh);
int w = Integer.valueOf(ww);
if (w > 460) {
double factor = w / 460.0;
h = (int) (h / factor);
w = (int) (w / factor);
}
ww = String.valueOf(w);
hh = String.valueOf(h);
} catch (Exception e) {
e.printStackTrace();
}
if ("".equals(width)) {
width = ww;
}
Expand Down Expand Up @@ -130,24 +143,24 @@ public Image setHeight(String value) {
}

private String img_template = "\n<w:pict>"
+ "\n <v:shapetype id=\"_x0000_t75\" coordsize=\"21600,21600\" o:spt=\"75\" o:preferrelative=\"t\" path=\"m@4@5l@4@11@9@11@9@5xe\" filled=\"f\" stroked=\"f\">"
+ " <v:stroke joinstyle=\"miter\"/>"
+ " <v:formulas>"
+ " <v:f eqn=\"if lineDrawn pixelLineWidth 0\"/>"
+ " <v:f eqn=\"sum @0 1 0\"/><v:f eqn=\"sum 0 0 @1\"/>"
+ " <v:f eqn=\"prod @2 1 2\"/>"
+ " <v:f eqn=\"prod @3 21600 pixelWidth\"/>"
+ " <v:f eqn=\"prod @3 21600 pixelHeight\"/>"
+ " <v:f eqn=\"sum @0 0 1\"/>"
+ " <v:f eqn=\"prod @6 1 2\"/>"
+ " <v:f eqn=\"prod @7 21600 pixelWidth\"/>"
+ " <v:f eqn=\"sum @8 21600 0\"/>"
+ " <v:f eqn=\"prod @7 21600 pixelHeight\"/>"
+ " <v:f eqn=\"sum @10 21600 0\"/>"
+ " </v:formulas>"
+ " <v:path o:extrusionok=\"f\" gradientshapeok=\"t\" o:connecttype=\"rect\"/>"
+ " <o:lock v:ext=\"edit\" aspectratio=\"t\"/>"
+ " </v:shapetype>"
// + "\n <v:shapetype id=\"_x0000_t75\" coordsize=\"21600,21600\" o:spt=\"75\" o:preferrelative=\"t\" path=\"m@4@5l@4@11@9@11@9@5xe\" filled=\"f\" stroked=\"f\">"
// + " <v:stroke joinstyle=\"miter\"/>"
// + " <v:formulas>"
// + " <v:f eqn=\"if lineDrawn pixelLineWidth 0\"/>"
// + " <v:f eqn=\"sum @0 1 0\"/><v:f eqn=\"sum 0 0 @1\"/>"
// + " <v:f eqn=\"prod @2 1 2\"/>"
// + " <v:f eqn=\"prod @3 21600 pixelWidth\"/>"
// + " <v:f eqn=\"prod @3 21600 pixelHeight\"/>"
// + " <v:f eqn=\"sum @0 0 1\"/>"
// + " <v:f eqn=\"prod @6 1 2\"/>"
// + " <v:f eqn=\"prod @7 21600 pixelWidth\"/>"
// + " <v:f eqn=\"sum @8 21600 0\"/>"
// + " <v:f eqn=\"prod @7 21600 pixelHeight\"/>"
// + " <v:f eqn=\"sum @10 21600 0\"/>"
// + " </v:formulas>"
// + " <v:path o:extrusionok=\"f\" gradientshapeok=\"t\" o:connecttype=\"rect\"/>"
// + " <o:lock v:ext=\"edit\" aspectratio=\"t\"/>"
// + " </v:shapetype>"
+ "\n<w:binData w:name=\"wordml://{internalFileName}\" xml:space=\"preserve\">{binary}</w:binData>"
+ "\n <v:shape id=\"_x0000_i1026\" type=\"#_x0000_t75\" style=\"width:{width}pt;height:{height}pt\"><v:imagedata src=\"wordml://{internalFileName}\" o:title=\"{fileName}\"/>"
+ "\n </v:shape>" + "\n</w:pict>";
Expand Down
17 changes: 17 additions & 0 deletions java2word/src/main/java/word/w2004/elements/Paragraph.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import word.api.interfaces.IFluentElement;
import word.api.interfaces.IFluentElementStylable;
import word.w2004.style.ParagraphStyle;
import word.w2004.style.ParagraphStyle.Align;


/**
Expand Down Expand Up @@ -38,6 +39,10 @@ private Paragraph() {
public Paragraph(ParagraphPiece ... pieces) {
this.pieces = pieces;
}

private Paragraph(Align align) {
this.style.align(align);
}

@Override
public String getContent() {
Expand Down Expand Up @@ -106,6 +111,18 @@ public static Paragraph with(String value) {
return par;
//return new Paragraph(value);
}

public static Paragraph with(String value, Align align) {
//if(value == null || "".equals(value)){
//return null;
//}
Paragraph par = new Paragraph(align);
ParagraphPiece piece = ParagraphPiece.with(value);
par.pieces = new ParagraphPiece[1];
par.pieces[0] = piece;
return par;
//return new Paragraph(value);
}

public static Paragraph withPieces(ParagraphPiece ... pieces) {
return new Paragraph(pieces);
Expand Down
14 changes: 11 additions & 3 deletions java2word/src/main/java/word/w2004/elements/Table.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,16 @@ public class Table implements IElement {
// result for future
// invocations
private boolean isRepeatTableHeaderOnEveryPage = false;
private int cols;

public Table(int cols) {
this.cols = cols;
}

public Table() {
//DEFAULT 2 COLS, LIKE IN THE ORIGINAL
this(2);
}

public String getContent() {
if ("".equals(txt.toString())) {
Expand All @@ -31,7 +41,7 @@ public String getContent() {
ITableItemStrategy tableDef = TableFactoryMethod.getInstance()
.getTableItem(TableEle.TABLE_DEF);

txt.insert(0, tableDef.getTop());
txt.insert(0, tableDef.getTop(cols));
txt.append("\n" + tableDef.getBottom());

return txt.toString();
Expand Down Expand Up @@ -63,9 +73,7 @@ public void addTableEle(TableEle tableEle, String... cols) {
ITableItemStrategy item = TableFactoryMethod.getInstance().getTableItem(tableEle);

for (int i = 0; i < cols.length; i++) {
//if(!"".equals(cols[i])){
th.append("\n" + item.getMiddle().replace("{value}", cols[i]));
//}
}

joinTopMiddleBottom(th, item);
Expand Down
22 changes: 22 additions & 0 deletions java2word/src/main/java/word/w2004/elements/Title1.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package word.w2004.elements;

import word.api.interfaces.IFluentElement;
import word.w2004.style.HeadingStyle;
import word.w2004.style.HeadingStyle.Align;

public class Title1 extends AbstractHeading<HeadingStyle> implements IFluentElement<Title1> {

private Title1(String value, Align align) {
super("Title1", value, align);
}

public static Title1 with(String value, Align align) {
return new Title1(value, align);
}

@Override
public Title1 create() {
return this;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
*/
public interface ITableItemStrategy{
public String getTop();
public String getTop(int cols);
public String getMiddle();
public String getBottom();
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,11 @@ public String getMiddle() {
public String getBottom() {
return "\n </w:tr>";
}

@Override
public String getTop(int cols) {
// TODO Auto-generated method stub
return null;
}

}
Loading