diff --git a/engine/org.eclipse.birt.report.engine.emitter.docx/src/org/eclipse/birt/report/engine/emitter/docx/DocxEmitterImpl.java b/engine/org.eclipse.birt.report.engine.emitter.docx/src/org/eclipse/birt/report/engine/emitter/docx/DocxEmitterImpl.java index 58281a2260..e24bac4811 100644 --- a/engine/org.eclipse.birt.report.engine.emitter.docx/src/org/eclipse/birt/report/engine/emitter/docx/DocxEmitterImpl.java +++ b/engine/org.eclipse.birt.report.engine.emitter.docx/src/org/eclipse/birt/report/engine/emitter/docx/DocxEmitterImpl.java @@ -110,7 +110,7 @@ public void startForeign(IForeignContent foreign) throws BirtException { wordWriter.startTableRow(-1); wordWriter.startTableCell(width, foreign.getComputedStyle(), null, null); // TODO:need text paser for foreign raw value - wordWriter.writeForeign(foreign); + wordWriter.writeForeign(foreign, true); if (isInSpannedCell(foreign)) { // insert empty line after embed html wordWriter.endTableCell(true, true); diff --git a/engine/org.eclipse.birt.report.engine.emitter.docx/src/org/eclipse/birt/report/engine/emitter/docx/writer/BasicComponent.java b/engine/org.eclipse.birt.report.engine.emitter.docx/src/org/eclipse/birt/report/engine/emitter/docx/writer/BasicComponent.java index 1da07d0719..97d64c3493 100644 --- a/engine/org.eclipse.birt.report.engine.emitter.docx/src/org/eclipse/birt/report/engine/emitter/docx/writer/BasicComponent.java +++ b/engine/org.eclipse.birt.report.engine.emitter.docx/src/org/eclipse/birt/report/engine/emitter/docx/writer/BasicComponent.java @@ -96,6 +96,8 @@ public abstract class BasicComponent extends AbstractWordXmlWriter { private ReportDesignHandle handle; + protected boolean wrappedTable = true; + protected BasicComponent(IPart part) throws IOException { this.part = part; this.imageManager = (ImageManager) part.getPackage().getExtensionData(); @@ -307,6 +309,11 @@ protected void writeBookmark(String bm) { bookmarkId++; } + protected void writeForeign(IForeignContent foreignContent, boolean wrappedTable) { + this.wrappedTable = wrappedTable; + writeForeign(foreignContent); + } + protected void writeForeign(IForeignContent foreignContent) { if (foreignContent.getRawValue() != null) { String uri = "mhtText" + getMhtTextId() + ".mht"; @@ -563,9 +570,14 @@ private void buildBox(StringBuffer styleBuffer, IStyle style) { private void buildMargins(StringBuffer styleBuffer, IStyle style) { // build the margins String topMargin = style.getMarginTop(); - String rightMargin = style.getMarginRight(); + String rightMargin = "0px"; String bottomMargin = style.getMarginBottom(); - String leftMargin = style.getMarginLeft(); + String leftMargin = "0px"; + + if (!wrappedTable) { + rightMargin = style.getMarginRight(); + leftMargin = style.getMarginLeft(); + } if (null != topMargin && null != rightMargin && null != bottomMargin && null != leftMargin) { if (rightMargin.equals(leftMargin)) { diff --git a/engine/org.eclipse.birt.report.engine.emitter.docx/src/org/eclipse/birt/report/engine/emitter/docx/writer/DocxWriter.java b/engine/org.eclipse.birt.report.engine.emitter.docx/src/org/eclipse/birt/report/engine/emitter/docx/writer/DocxWriter.java index b4533219d6..43e998dba1 100644 --- a/engine/org.eclipse.birt.report.engine.emitter.docx/src/org/eclipse/birt/report/engine/emitter/docx/writer/DocxWriter.java +++ b/engine/org.eclipse.birt.report.engine.emitter.docx/src/org/eclipse/birt/report/engine/emitter/docx/writer/DocxWriter.java @@ -311,6 +311,11 @@ public void writeForeign(IForeignContent foreignContent) { currentComponent.writeForeign(foreignContent); } + @Override + public void writeForeign(IForeignContent foreignContent, boolean embedHTML) { + currentComponent.writeForeign(foreignContent, embedHTML); + } + @Override public void endPage() { } diff --git a/engine/org.eclipse.birt.report.engine.emitter.wpml/src/org/eclipse/birt/report/engine/emitter/wpml/IWordWriter.java b/engine/org.eclipse.birt.report.engine.emitter.wpml/src/org/eclipse/birt/report/engine/emitter/wpml/IWordWriter.java index f2f82831bd..3b5a1a59b6 100644 --- a/engine/org.eclipse.birt.report.engine.emitter.wpml/src/org/eclipse/birt/report/engine/emitter/wpml/IWordWriter.java +++ b/engine/org.eclipse.birt.report.engine.emitter.wpml/src/org/eclipse/birt/report/engine/emitter/wpml/IWordWriter.java @@ -332,6 +332,14 @@ void drawImage(byte[] data, double height, double width, HyperlinkInfo hyper, IS */ void writeForeign(IForeignContent foreignContent); + /** + * Write foreign + * + * @param foreignContent foreign content + * @param wrappedTable foreign text is wrapped with table + */ + void writeForeign(IForeignContent foreignContent, boolean wrappedTable); + /** * Write content * diff --git a/engine/org.eclipse.birt.report.engine.emitter.wpml/src/org/eclipse/birt/report/engine/emitter/wpml/writer/DocWriter.java b/engine/org.eclipse.birt.report.engine.emitter.wpml/src/org/eclipse/birt/report/engine/emitter/wpml/writer/DocWriter.java index 3ed31d50cd..d45a4d573a 100644 --- a/engine/org.eclipse.birt.report.engine.emitter.wpml/src/org/eclipse/birt/report/engine/emitter/wpml/writer/DocWriter.java +++ b/engine/org.eclipse.birt.report.engine.emitter.wpml/src/org/eclipse/birt/report/engine/emitter/wpml/writer/DocWriter.java @@ -552,6 +552,10 @@ protected void writeVmerge(SpanInfo spanInfo) { public void writeForeign(IForeignContent foreignContent) { } + @Override + public void writeForeign(IForeignContent foreignContent, boolean wrappedTable) { + } + @Override public void writePageBorders(IStyle style, int topMargin, int bottomMargin, int leftMargin, int rightMargin) { // TODO Auto-generated method stub