Changeset 943
- Timestamp:
- 10/25/09 01:08:24 (3 years ago)
- Location:
- trunk/docx4j/src/main/java/org/docx4j
- Files:
-
- 5 added
- 18 edited
- 1 moved
-
UnitsOfMeasurement.java (modified) (1 diff)
-
XmlUtils.java (modified) (6 diffs)
-
convert/out/html/DocX2Html.xslt (modified) (2 diffs)
-
convert/out/html/docx2xhtmlNG2.xslt (modified) (2 diffs)
-
convert/out/html/docx4j2xhtml.xslt (modified) (2 diffs)
-
convert/out/pdf/viaIText/Conversion.java (modified) (1 diff)
-
convert/out/pdf/viaXSLFO/docx2fo.xslt (modified) (11 diffs)
-
jaxb/Context.java (modified) (2 diffs)
-
jaxb/NamespacePrefixMapper.java (modified) (1 diff)
-
model/images/WordXmlPicture.java (modified) (1 diff)
-
model/structure (added)
-
model/structure/DocumentModel.java (added)
-
model/structure/HeaderFooterPolicy.java (moved) (moved from trunk/docx4j/src/main/java/org/docx4j/model/HeaderFooterPolicy.java) (4 diffs)
-
model/structure/PageDimensions.java (added)
-
model/structure/SectionWrapper.java (added)
-
model/table/TableModel.java (modified) (2 diffs)
-
model/table/TblFactory.java (added)
-
openpackaging/packages/WordprocessingMLPackage.java (modified) (4 diffs)
-
openpackaging/parts/WordprocessingML/BinaryPartAbstractImage.java (modified) (2 diffs)
-
openpackaging/parts/WordprocessingML/MainDocumentPart.java (modified) (3 diffs)
-
openpackaging/parts/relationships/Namespaces.java (modified) (1 diff)
-
samples/CreateWordprocessingMLDocument.java (modified) (3 diffs)
-
samples/OpenMainDocumentAndTraverse.java (modified) (7 diffs)
-
wml/TblPr.java (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/docx4j/src/main/java/org/docx4j/UnitsOfMeasurement.java
r922 r943 23 23 public class UnitsOfMeasurement { 24 24 25 26 // Defaults - if values aren't defined in sectPr27 public static int DEFAULT_PAGE_WIDTH_TWIPS = 12240; // Letter; A4 would be 1190728 public static int DEFAULT_LEFT_MARGIN_TWIPS = 1440; // 1 inch29 public static int DEFAULT_RIGHT_MARGIN_TWIPS = 1440;30 31 32 25 public static long twipToEMU(double twips) { 33 26 return Math.round(635 * twips); -
trunk/docx4j/src/main/java/org/docx4j/XmlUtils.java
r941 r943 36 36 import javax.xml.bind.Marshaller; 37 37 import javax.xml.bind.Unmarshaller; 38 import javax.xml.bind.annotation.XmlRootElement; 38 39 import javax.xml.namespace.QName; 39 40 import javax.xml.parsers.DocumentBuilderFactory; … … 52 53 import org.apache.xml.dtm.ref.DTMNodeProxy; 53 54 import org.docx4j.jaxb.Context; 55 import org.docx4j.jaxb.NamespacePrefixMapper; 54 56 import org.docx4j.jaxb.NamespacePrefixMapperUtils; 57 import org.docx4j.jaxb.NamespacePrefixMappings; 55 58 import org.docx4j.openpackaging.exceptions.Docx4JException; 56 59 … … 159 162 160 163 } 161 164 165 public static String JAXBElementDebug(javax.xml.bind.JAXBElement o) { 166 167 String prefix = null; 168 if (o.getName().getNamespaceURI()!=null) { 169 prefix = NamespacePrefixMapper.getPreferredPrefix(o.getName().getNamespaceURI() ); 170 } 171 if (prefix!=null) { 172 return prefix + ':' + o.getName().getLocalPart() 173 + " is a javax.xml.bind.JAXBElement; it has declared type " 174 + o.getDeclaredType().getName(); 175 } else { 176 return o.getName() + " is a javax.xml.bind.JAXBElement; it has declared type " 177 + o.getDeclaredType().getName(); 178 } 179 180 } 162 181 163 182 /** Unmarshal a Dom4j element as JAXB object using JAXBContext Context.jc */ … … 224 243 } 225 244 226 /** Unmarshal a String as an object in the package org.docx4j.jaxb.document */ 245 /** Unmarshal a String as an object in the package org.docx4j.jaxb.document. 246 * Note: you should ensure you include a namespace declaration for w: and 247 * any other namespace in the xml string. 248 * Also, the object you are attempting to unmarshall to might need to 249 * have an @XmlRootElement annotation for things to work. */ 227 250 public static Object unmarshalString(String str) { 228 251 return unmarshalString(str, Context.jc); … … 233 256 try { 234 257 258 log.debug("Unmarshalling '" + str + "'"); 259 235 260 Unmarshaller u = jc.createUnmarshaller(); 236 261 … … 239 264 o = u.unmarshal( new javax.xml.transform.stream.StreamSource( 240 265 new java.io.StringReader(str)) ); 241 242 System.out.println("unmarshalled ");243 266 244 267 } catch (Exception ex) { -
trunk/docx4j/src/main/java/org/docx4j/convert/out/html/DocX2Html.xslt
r936 r943 6863 6863 /*@media print { */ 6864 6864 <xsl:if 6865 test="java:org.docx4j.model. HeaderFooterPolicy.hasDefaultHeader($wmlPackage)">6865 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasDefaultHeader($wmlPackage)"> 6866 6866 div.header {display: block; position: running(header) } 6867 6867 </xsl:if> 6868 6868 <xsl:if 6869 test="java:org.docx4j.model. HeaderFooterPolicy.hasDefaultFooter($wmlPackage)">6869 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasDefaultFooter($wmlPackage)"> 6870 6870 div.footer {display: block; position: running(footer) } 6871 6871 </xsl:if> … … 6929 6929 --> 6930 6930 <xsl:if 6931 test="java:org.docx4j.model. HeaderFooterPolicy.hasDefaultHeader($wmlPackage)">6931 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasDefaultHeader($wmlPackage)"> 6932 6932 <div class="header"> 6933 6933 <xsl:apply-templates 6934 select="java:org.docx4j.model. HeaderFooterPolicy.getDefaultHeader($wmlPackage)" />6934 select="java:org.docx4j.model.structure.HeaderFooterPolicy.getDefaultHeader($wmlPackage)" /> 6935 6935 </div> 6936 6936 </xsl:if> 6937 6937 <xsl:if 6938 test="java:org.docx4j.model. HeaderFooterPolicy.hasDefaultFooter($wmlPackage)">6938 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasDefaultFooter($wmlPackage)"> 6939 6939 <div class="footer"> 6940 6940 <xsl:apply-templates 6941 select="java:org.docx4j.model. HeaderFooterPolicy.getDefaultFooter($wmlPackage)" />6941 select="java:org.docx4j.model.structure.HeaderFooterPolicy.getDefaultFooter($wmlPackage)" /> 6942 6942 </div> 6943 6943 </xsl:if> -
trunk/docx4j/src/main/java/org/docx4j/convert/out/html/docx2xhtmlNG2.xslt
r912 r943 61 61 /*@media print { */ 62 62 <xsl:if 63 test="java:org.docx4j.model. HeaderFooterPolicy.hasDefaultHeader($wmlPackage)">63 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasDefaultHeader($wmlPackage)"> 64 64 div.header {display: block; position: running(header) } 65 65 </xsl:if> 66 66 <xsl:if 67 test="java:org.docx4j.model. HeaderFooterPolicy.hasDefaultFooter($wmlPackage)">67 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasDefaultFooter($wmlPackage)"> 68 68 div.footer {display: block; position: running(footer) } 69 69 </xsl:if> … … 126 126 --> 127 127 <xsl:if 128 test="java:org.docx4j.model. HeaderFooterPolicy.hasDefaultHeader($wmlPackage)">128 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasDefaultHeader($wmlPackage)"> 129 129 <div class="header"> 130 130 <xsl:apply-templates 131 select="java:org.docx4j.model. HeaderFooterPolicy.getDefaultHeader($wmlPackage)" />131 select="java:org.docx4j.model.structure.HeaderFooterPolicy.getDefaultHeader($wmlPackage)" /> 132 132 </div> 133 133 </xsl:if> 134 134 <xsl:if 135 test="java:org.docx4j.model. HeaderFooterPolicy.hasDefaultFooter($wmlPackage)">135 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasDefaultFooter($wmlPackage)"> 136 136 <div class="footer"> 137 137 <xsl:apply-templates 138 select="java:org.docx4j.model. HeaderFooterPolicy.getDefaultFooter($wmlPackage)" />138 select="java:org.docx4j.model.structure.HeaderFooterPolicy.getDefaultFooter($wmlPackage)" /> 139 139 </div> 140 140 </xsl:if> -
trunk/docx4j/src/main/java/org/docx4j/convert/out/html/docx4j2xhtml.xslt
r865 r943 61 61 /*@media print { */ 62 62 <xsl:if 63 test="java:org.docx4j.model. HeaderFooterPolicy.hasDefaultHeader($wmlPackage)">63 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasDefaultHeader($wmlPackage)"> 64 64 div.header {display: block; position: running(header) } 65 65 </xsl:if> 66 66 <xsl:if 67 test="java:org.docx4j.model. HeaderFooterPolicy.hasDefaultFooter($wmlPackage)">67 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasDefaultFooter($wmlPackage)"> 68 68 div.footer {display: block; position: running(footer) } 69 69 </xsl:if> … … 126 126 --> 127 127 <xsl:if 128 test="java:org.docx4j.model. HeaderFooterPolicy.hasDefaultHeader($wmlPackage)">128 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasDefaultHeader($wmlPackage)"> 129 129 <div class="header"> 130 130 <xsl:apply-templates 131 select="java:org.docx4j.model. HeaderFooterPolicy.getDefaultHeader($wmlPackage)" />131 select="java:org.docx4j.model.structure.HeaderFooterPolicy.getDefaultHeader($wmlPackage)" /> 132 132 </div> 133 133 </xsl:if> 134 134 <xsl:if 135 test="java:org.docx4j.model. HeaderFooterPolicy.hasDefaultFooter($wmlPackage)">135 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasDefaultFooter($wmlPackage)"> 136 136 <div class="footer"> 137 137 <xsl:apply-templates 138 select="java:org.docx4j.model. HeaderFooterPolicy.getDefaultFooter($wmlPackage)" />138 select="java:org.docx4j.model.structure.HeaderFooterPolicy.getDefaultFooter($wmlPackage)" /> 139 139 </div> 140 140 </xsl:if> -
trunk/docx4j/src/main/java/org/docx4j/convert/out/pdf/viaIText/Conversion.java
r887 r943 15 15 import org.docx4j.fonts.PhysicalFont; 16 16 import org.docx4j.fonts.PhysicalFonts; 17 import org.docx4j.model. HeaderFooterPolicy;17 import org.docx4j.model.structure.HeaderFooterPolicy; 18 18 import org.docx4j.openpackaging.exceptions.Docx4JException; 19 19 import org.docx4j.openpackaging.packages.WordprocessingMLPackage; -
trunk/docx4j/src/main/java/org/docx4j/convert/out/pdf/viaXSLFO/docx2fo.xslt
r865 r943 106 106 <!-- First Page --> 107 107 <xsl:when 108 test="java:org.docx4j.model. HeaderFooterPolicy.hasFirstHeaderOrFooter($wmlPackage)">108 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasFirstHeaderOrFooter($wmlPackage)"> 109 109 <fo:simple-page-master master-name="firstpage" 110 110 page-height="297mm" page-width="210mm" margin-top="10mm" … … 117 117 <!-- First Page Header --> 118 118 <xsl:if 119 test="java:org.docx4j.model. HeaderFooterPolicy.hasFirstHeader($wmlPackage)">119 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasFirstHeader($wmlPackage)"> 120 120 <fo:region-before 121 121 region-name="xsl-region-before-firstpage" extent="10mm" /> … … 124 124 <!-- First Page Footer --> 125 125 <xsl:if 126 test="java:org.docx4j.model. HeaderFooterPolicy.hasFirstFooter($wmlPackage)">126 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasFirstFooter($wmlPackage)"> 127 127 <fo:region-after 128 128 region-name="xsl-region-after-firstpage" extent="10mm" /> … … 132 132 </xsl:when> 133 133 <xsl:when 134 test="java:org.docx4j.model. HeaderFooterPolicy.hasEvenOrOddHeaderOrFooter($wmlPackage)">134 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasEvenOrOddHeaderOrFooter($wmlPackage)"> 135 135 <!-- layout for the even page --> 136 136 <fo:simple-page-master master-name="evenpage" … … 141 141 margin-bottom="20mm" margin-left="0mm" margin-right="0mm" /> 142 142 <xsl:if 143 test="java:org.docx4j.model. HeaderFooterPolicy.hasEvenHeader($wmlPackage)">143 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasEvenHeader($wmlPackage)"> 144 144 <fo:region-before 145 145 region-name="xsl-region-before-evenpage" extent="10mm" /> 146 146 </xsl:if> 147 147 <xsl:if 148 test="java:org.docx4j.model. HeaderFooterPolicy.hasEvenFooter($wmlPackage)">148 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasEvenFooter($wmlPackage)"> 149 149 <fo:region-after 150 150 region-name="xsl-region-after-evenpage" extent="10mm" /> … … 159 159 margin-bottom="20mm" margin-left="0mm" margin-right="0mm" /> 160 160 <xsl:if 161 test="java:org.docx4j.model. HeaderFooterPolicy.hasOddHeader($wmlPackage)">161 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasOddHeader($wmlPackage)"> 162 162 <fo:region-before 163 163 region-name="xsl-region-before-oddpage" extent="10mm" /> 164 164 </xsl:if> 165 165 <xsl:if 166 test="java:org.docx4j.model. HeaderFooterPolicy.hasOddFooter($wmlPackage)">166 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasOddFooter($wmlPackage)"> 167 167 <fo:region-after 168 168 region-name="xsl-region-after-oddpage" extent="10mm" /> … … 171 171 </xsl:when> 172 172 <xsl:when 173 test="java:org.docx4j.model. HeaderFooterPolicy.hasDefaultHeaderOrFooter($wmlPackage)">173 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasDefaultHeaderOrFooter($wmlPackage)"> 174 174 <fo:simple-page-master master-name="default" 175 175 page-height="297mm" page-width="210mm" margin-top="10mm" … … 179 179 margin-bottom="20mm" margin-left="0mm" margin-right="0mm" /> 180 180 <xsl:if 181 test="java:org.docx4j.model. HeaderFooterPolicy.hasDefaultHeader($wmlPackage)">181 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasDefaultHeader($wmlPackage)"> 182 182 <fo:region-before 183 183 region-name="xsl-region-before-default" extent="10mm" /> 184 184 </xsl:if> 185 185 <xsl:if 186 test="java:org.docx4j.model. HeaderFooterPolicy.hasDefaultFooter($wmlPackage)">186 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasDefaultFooter($wmlPackage)"> 187 187 <fo:region-after 188 188 region-name="xsl-region-after-default" extent="10mm" /> … … 210 210 <xsl:choose> 211 211 <xsl:when 212 test="java:org.docx4j.model. HeaderFooterPolicy.hasFirstHeaderOrFooter($wmlPackage)">212 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasFirstHeaderOrFooter($wmlPackage)"> 213 213 <fo:conditional-page-master-reference 214 214 master-reference="firstpage" page-position="first" /> 215 215 </xsl:when> 216 216 <xsl:when 217 test="java:org.docx4j.model. HeaderFooterPolicy.hasOddHeaderOrFooter($wmlPackage)">217 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasOddHeaderOrFooter($wmlPackage)"> 218 218 <fo:conditional-page-master-reference 219 219 master-reference="oddpage" odd-or-even="odd" /> 220 220 </xsl:when> 221 221 <xsl:when 222 test="java:org.docx4j.model. HeaderFooterPolicy.hasEvenHeaderOrFooter($wmlPackage)">222 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasEvenHeaderOrFooter($wmlPackage)"> 223 223 <fo:conditional-page-master-reference 224 224 master-reference="evenpage" odd-or-even="even" /> 225 225 </xsl:when> 226 226 <xsl:when 227 test="java:org.docx4j.model. HeaderFooterPolicy.hasDefaultFooter($wmlPackage)">227 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasDefaultFooter($wmlPackage)"> 228 228 <fo:conditional-page-master-reference 229 229 master-reference="default" /> … … 250 250 <!-- First Page --> 251 251 <xsl:when 252 test="java:org.docx4j.model. HeaderFooterPolicy.hasFirstHeaderOrFooter($wmlPackage)">252 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasFirstHeaderOrFooter($wmlPackage)"> 253 253 <!-- First Page Header --> 254 254 <xsl:if 255 test="java:org.docx4j.model. HeaderFooterPolicy.hasFirstHeader($wmlPackage)">255 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasFirstHeader($wmlPackage)"> 256 256 <fo:static-content 257 257 flow-name="xsl-region-before-firstpage"> 258 258 259 259 <xsl:apply-templates 260 select="java:org.docx4j.model. HeaderFooterPolicy.getFirstHeader($wmlPackage)" />260 select="java:org.docx4j.model.structure.HeaderFooterPolicy.getFirstHeader($wmlPackage)" /> 261 261 262 262 </fo:static-content> … … 265 265 <!-- First Page Footer --> 266 266 <xsl:if 267 test="java:org.docx4j.model. HeaderFooterPolicy.hasFirstFooter($wmlPackage)">267 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasFirstFooter($wmlPackage)"> 268 268 269 269 <fo:static-content 270 270 flow-name="xsl-region-after-firstpage"> 271 271 <xsl:apply-templates 272 select="java:org.docx4j.model. HeaderFooterPolicy.getFirstFooter($wmlPackage)" />272 select="java:org.docx4j.model.structure.HeaderFooterPolicy.getFirstFooter($wmlPackage)" /> 273 273 </fo:static-content> 274 274 </xsl:if> 275 275 </xsl:when> 276 276 <xsl:when 277 test="java:org.docx4j.model. HeaderFooterPolicy.hasEvenOrOddHeaderOrFooter($wmlPackage)">278 <xsl:if 279 test="java:org.docx4j.model. HeaderFooterPolicy.hasEvenHeader($wmlPackage)">277 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasEvenOrOddHeaderOrFooter($wmlPackage)"> 278 <xsl:if 279 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasEvenHeader($wmlPackage)"> 280 280 <fo:static-content 281 281 flow-name="xsl-region-before-evenpage"> 282 282 <xsl:apply-templates 283 select="java:org.docx4j.model. HeaderFooterPolicy.getEvenHeader($wmlPackage)" />284 </fo:static-content> 285 </xsl:if> 286 <xsl:if 287 test="java:org.docx4j.model. HeaderFooterPolicy.hasEvenFooter($wmlPackage)">283 select="java:org.docx4j.model.structure.HeaderFooterPolicy.getEvenHeader($wmlPackage)" /> 284 </fo:static-content> 285 </xsl:if> 286 <xsl:if 287 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasEvenFooter($wmlPackage)"> 288 288 <fo:static-content 289 289 flow-name="xsl-region-after-evenpage"> 290 290 <xsl:apply-templates 291 select="java:org.docx4j.model. HeaderFooterPolicy.getEvenFooter($wmlPackage)" />292 </fo:static-content> 293 </xsl:if> 294 <xsl:if 295 test="java:org.docx4j.model. HeaderFooterPolicy.hasOddHeader($wmlPackage)">291 select="java:org.docx4j.model.structure.HeaderFooterPolicy.getEvenFooter($wmlPackage)" /> 292 </fo:static-content> 293 </xsl:if> 294 <xsl:if 295 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasOddHeader($wmlPackage)"> 296 296 <fo:static-content 297 297 flow-name="xsl-region-before-oddpage"> 298 298 <xsl:apply-templates 299 select="java:org.docx4j.model. HeaderFooterPolicy.getOddHeader($wmlPackage)" />300 </fo:static-content> 301 </xsl:if> 302 <xsl:if 303 test="java:org.docx4j.model. HeaderFooterPolicy.hasOddFooter($wmlPackage)">299 select="java:org.docx4j.model.structure.HeaderFooterPolicy.getOddHeader($wmlPackage)" /> 300 </fo:static-content> 301 </xsl:if> 302 <xsl:if 303 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasOddFooter($wmlPackage)"> 304 304 <fo:static-content 305 305 flow-name="xsl-region-after-oddpage"> 306 306 <xsl:apply-templates 307 select="java:org.docx4j.model. HeaderFooterPolicy.getOddFooter($wmlPackage)" />307 select="java:org.docx4j.model.structure.HeaderFooterPolicy.getOddFooter($wmlPackage)" /> 308 308 </fo:static-content> 309 309 </xsl:if> 310 310 </xsl:when> 311 311 <xsl:when 312 test="java:org.docx4j.model. HeaderFooterPolicy.hasDefaultHeaderOrFooter($wmlPackage)">313 <xsl:if 314 test="java:org.docx4j.model. HeaderFooterPolicy.hasDefaultHeader($wmlPackage)">312 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasDefaultHeaderOrFooter($wmlPackage)"> 313 <xsl:if 314 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasDefaultHeader($wmlPackage)"> 315 315 <fo:static-content 316 316 flow-name="xsl-region-before-default"> 317 317 <xsl:apply-templates 318 select="java:org.docx4j.model. HeaderFooterPolicy.getDefaultHeader($wmlPackage)" />319 </fo:static-content> 320 </xsl:if> 321 <xsl:if 322 test="java:org.docx4j.model. HeaderFooterPolicy.hasDefaultFooter($wmlPackage)">318 select="java:org.docx4j.model.structure.HeaderFooterPolicy.getDefaultHeader($wmlPackage)" /> 319 </fo:static-content> 320 </xsl:if> 321 <xsl:if 322 test="java:org.docx4j.model.structure.HeaderFooterPolicy.hasDefaultFooter($wmlPackage)"> 323 323 <fo:static-content 324 324 flow-name="xsl-region-after-default"> 325 325 <xsl:apply-templates 326 select="java:org.docx4j.model. HeaderFooterPolicy.getDefaultFooter($wmlPackage)" />326 select="java:org.docx4j.model.structure.HeaderFooterPolicy.getDefaultFooter($wmlPackage)" /> 327 327 </fo:static-content> 328 328 </xsl:if> -
trunk/docx4j/src/main/java/org/docx4j/jaxb/Context.java
r924 r943 22 22 23 23 import javax.xml.bind.JAXBContext; 24 import javax.xml.bind.JAXBException; 24 25 25 26 public class Context { … … 35 36 36 37 static { 38 39 // Display diagnostic info about version of JAXB being used. 40 Class c; 41 try { 42 c = Class.forName("com.sun.xml.bind.marshaller.NamespacePrefixMapper"); 43 System.out.println("JAXB: Using RI"); 44 } catch (ClassNotFoundException cnfe) { 45 // JAXB Reference Implementation not present 46 System.out.println("JAXB: RI not present. Trying Java 6 implementation."); 47 try { 48 c = Class.forName("com.sun.xml.internal.bind.marshaller.NamespacePrefixMapper"); 49 System.out.println("JAXB: Using Java 6 implementation."); 50 } catch (ClassNotFoundException e) { 51 System.out.println("JAXB: neither Reference Implementation nor Java 6 implementation present?"); 52 } 53 } 37 54 38 55 try { -
trunk/docx4j/src/main/java/org/docx4j/jaxb/NamespacePrefixMapper.java
r883 r943 71 71 } 72 72 73 public static String getPreferredPrefix(String namespaceUri) 74 // Implement the interface 75 { 76 return NamespacePrefixMappings.getPreferredPrefixStatic(namespaceUri, null, false); 77 } 73 78 74 79 /** -
trunk/docx4j/src/main/java/org/docx4j/model/images/WordXmlPicture.java
r847 r943 149 149 if (imgRelId!=null && !imgRelId.equals("")) 150 150 { 151 picture.setID(imgRelId); 151 152 Relationship rel = wmlPackage.getMainDocumentPart().getRelationshipsPart().getRelationshipByID(imgRelId); 152 153 -
trunk/docx4j/src/main/java/org/docx4j/model/structure/HeaderFooterPolicy.java
r803 r943 1 package org.docx4j.model ;1 package org.docx4j.model.structure; 2 2 3 3 /* … … 29 29 import org.docx4j.openpackaging.parts.WordprocessingML.FooterPart; 30 30 import org.docx4j.openpackaging.parts.WordprocessingML.HeaderPart; 31 import org.docx4j.openpackaging.parts.relationships.RelationshipsPart; 31 32 import org.docx4j.wml.CTRel; 32 33 import org.docx4j.wml.Document; … … 52 53 private FooterPart defaultFooter; 53 54 54 55 /** 56 * Figures out the policy for the given document, 55 // TODO - consider same as previous funcitonality 56 57 58 /** 59 * Figures out the policy for the given section, 57 60 * and creates any header and footer objects 58 61 * as required. 59 62 */ 60 public HeaderFooterPolicy( WordprocessingMLPackage wordmlPackage)63 public HeaderFooterPolicy(SectPr sectPr, RelationshipsPart rels) 61 64 // throws Exception 62 65 { 63 // Grab what headers and footers have been defined 64 // For now, we don't care about different sectPr 65 66 Document doc = (Document)wordmlPackage.getMainDocumentPart().getJaxbElement(); 67 68 SectPr sectPr = doc.getBody().getSectPr(); 69 66 // Grab what headers and footers have been defined 70 67 if (sectPr == null || sectPr.getEGHdrFtrReferences() == null) { 71 68 return; … … 76 73 String relId = rel.getId(); 77 74 78 Part part = wordmlPackage.getMainDocumentPart().getRelationshipsPart().getPart(relId);75 Part part = rels.getPart(relId); 79 76 80 77 if (rel instanceof HeaderReference ) { -
trunk/docx4j/src/main/java/org/docx4j/model/table/TableModel.java
r930 r943 35 35 import org.docx4j.jaxb.Context; 36 36 import org.docx4j.model.Model; 37 import org.docx4j.model.structure.PageDimensions; 37 38 38 39 import org.docx4j.wml.ObjectFactory; … … 219 220 // Default to page width 220 221 TblWidth tblWidth = factory.createTblWidth(); 221 tblWidth.setW(BigInteger.valueOf( UnitsOfMeasurement.DEFAULT_PAGE_WIDTH_TWIPS));222 tblWidth.setW(BigInteger.valueOf(PageDimensions.DEFAULT_PAGE_WIDTH_TWIPS)); 222 223 tblWidth.setType("dxa"); // twips 223 224 tblPr.setTblW(tblWidth); -
trunk/docx4j/src/main/java/org/docx4j/openpackaging/packages/WordprocessingMLPackage.java
r905 r943 41 41 import org.docx4j.fonts.Mapper; 42 42 import org.docx4j.jaxb.Context; 43 import org.docx4j.model.HeaderFooterPolicy; 43 import org.docx4j.model.structure.DocumentModel; 44 import org.docx4j.model.structure.HeaderFooterPolicy; 45 import org.docx4j.model.structure.PageDimensions; 44 46 import org.docx4j.openpackaging.contenttype.ContentType; 45 47 import org.docx4j.openpackaging.contenttype.ContentTypeManager; … … 59 61 import org.docx4j.openpackaging.parts.relationships.Namespaces; 60 62 import org.docx4j.wml.Document; 63 import org.docx4j.wml.SectPr; 61 64 import org.docx4j.wml.Styles; 62 65 … … 104 107 protected GlossaryDocumentPart glossaryDoc; 105 108 106 private HeaderFooterPolicy headerFooterPolicy; 109 private DocumentModel documentModel; 110 public DocumentModel getDocumentModel() { 111 if (documentModel==null) { 112 documentModel = new DocumentModel(this); 113 } 114 return documentModel; 115 } 116 117 118 private HeaderFooterPolicy headerFooterPolicy; 119 @Deprecated 107 120 public HeaderFooterPolicy getHeaderFooterPolicy() { 108 if (headerFooterPolicy==null) { 109 headerFooterPolicy = new HeaderFooterPolicy(this); 110 } 111 return headerFooterPolicy; 112 } 113 public void setHeaderFooterPolicy(HeaderFooterPolicy headerFooterPolicy) { 114 this.headerFooterPolicy = headerFooterPolicy; 115 } 116 121 122 return getDocumentModel().getSections().get(0).getHeaderFooterPolicy(); 123 } 117 124 118 125 /** … … 355 362 org.docx4j.wml.Document wmlDocumentEl = factory.createDocument(); 356 363 wmlDocumentEl.setBody(body); 364 365 // Create a basic sectPr using our Page model 366 PageDimensions page = new PageDimensions(); 367 SectPr sectPr = factory.createSectPr(); 368 body.setSectPr(sectPr); 369 sectPr.setPgSz(page.createPgSize() ); 370 sectPr.setPgMar(page.createPgMar()); 357 371 358 372 // Put the content in the part -
trunk/docx4j/src/main/java/org/docx4j/openpackaging/parts/WordprocessingML/BinaryPartAbstractImage.java
r922 r943 44 44 import org.docx4j.UnitsOfMeasurement; 45 45 import org.docx4j.dml.Inline; 46 import org.docx4j.model.structure.PageDimensions; 46 47 import org.docx4j.openpackaging.contenttype.ContentTypeManager; 47 48 import org.docx4j.openpackaging.contenttype.ContentTypes; … … 284 285 // Since the object will be added at the end of the document, 285 286 // it is safe to look for the page dimensions in the last sectPr 287 // TODO .. if adding elsewhere, would need to use dimensions from appropriate sectionWrapper. 286 288 SectPr sectPr = wmlDocumentEl.getBody().getSectPr(); 287 289 288 double writableWidthTwips; 289 if (sectPr==null) { 290 291 log.debug("PgSz and PgMar not defined in this doc's SectPr element"); 292 writableWidthTwips = UnitsOfMeasurement.DEFAULT_PAGE_WIDTH_TWIPS - (UnitsOfMeasurement.DEFAULT_LEFT_MARGIN_TWIPS + UnitsOfMeasurement.DEFAULT_RIGHT_MARGIN_TWIPS); 293 294 } else { 295 296 PgSz pgSz = sectPr.getPgSz(); 297 PgMar pgMar = sectPr.getPgMar(); 298 299 double pageWidth; 300 double leftMargin; 301 double rightMargin; 302 303 if ( pgSz == null ) { 304 pageWidth = UnitsOfMeasurement.DEFAULT_PAGE_WIDTH_TWIPS; 305 } else { 306 pageWidth = pgSz.getW().doubleValue(); 307 } 308 if ( pgMar == null 309 || pgMar.getLeft()==null) { 310 leftMargin = UnitsOfMeasurement.DEFAULT_LEFT_MARGIN_TWIPS; 311 } else { 312 leftMargin = pgMar.getLeft().doubleValue(); 313 } 314 if ( pgMar == null 315 || pgMar.getRight()==null) { 316 rightMargin = UnitsOfMeasurement.DEFAULT_RIGHT_MARGIN_TWIPS; 317 } else { 318 rightMargin = pgMar.getRight().doubleValue(); 319 } 320 321 writableWidthTwips = pageWidth - (leftMargin + rightMargin ); 322 } 323 290 PageDimensions page = new PageDimensions(); 291 if (sectPr!=null && sectPr.getPgSz()!=null) { 292 page.setPageSize(sectPr.getPgSz()); 293 } 294 295 double writableWidthTwips = page.getWritableWidthTwips(); 324 296 log.debug("writableWidthTwips: " + writableWidthTwips); 325 297 -
trunk/docx4j/src/main/java/org/docx4j/openpackaging/parts/WordprocessingML/MainDocumentPart.java
r917 r943 34 34 35 35 import org.apache.log4j.Logger; 36 import org.docx4j.XmlUtils; 36 37 import org.docx4j.model.PropertyResolver; 37 38 import org.docx4j.model.styles.StyleTree; … … 309 310 310 311 log.debug("not traversing into unhandled Node: " + ((org.w3c.dom.Node)o).getNodeName() ); 312 313 } else if ( o instanceof org.docx4j.wml.Tbl) { 314 // A table can be either this or a JAXBElement 315 // An existing table we have unmarshalled will be 316 // a JAXBElement; one we have just created 317 // via object factory will be a naked 318 // org.docx4j.wml.Tbl 319 inspectTable( (org.docx4j.wml.Tbl)o, fontsDiscovered, stylesInUse ); 311 320 312 321 } else if ( o instanceof javax.xml.bind.JAXBElement) { 313 322 314 log.debug( "Encountered " + ((JAXBElement) o).getDeclaredType().getName() ); 323 if ( ((JAXBElement)o).getDeclaredType().getName().equals("org.docx4j.wml.Tbl") ) { 324 325 org.docx4j.wml.Tbl tbl = (org.docx4j.wml.Tbl)((JAXBElement)o).getValue(); 326 inspectTable(tbl, fontsDiscovered, stylesInUse ); 327 } else if ( log.isDebugEnabled() ){ 328 log.debug( XmlUtils.JAXBElementDebug((JAXBElement)o) ); 329 } 315 330 316 331 // if (((JAXBElement) o).getDeclaredType().getName().equals( … … 343 358 } 344 359 } 360 361 private void inspectTable( org.docx4j.wml.Tbl tbl, Map fontsDiscovered, Map stylesInUse) { 362 363 // The table could have a table style; 364 // Tables created in Word 2007 default to table style "TableGrid", 365 // which is based on "TableNormal". 366 if (tbl.getTblPr()!=null 367 && tbl.getTblPr().getTblStyle()!=null) { 368 log.debug("Adding table style: " + tbl.getTblPr().getTblStyle().getVal() ); 369 stylesInUse.put(tbl.getTblPr().getTblStyle().getVal(), 370 tbl.getTblPr().getTblStyle().getVal() ); 371 } 372 // There is no such thing as a tr or a tc style, 373 // so we don't need to look for them, 374 // but since a tc can contain w:p or nested table, 375 // we still need to recurse 376 377 // We already looked for a w:tblStyle; 378 // here, we are looking for styles in the tc. 379 for (Object o : tbl.getEGContentRowContent() ) { 380 381 if (o instanceof org.docx4j.wml.Tr) { 382 log.debug( "\n in w:tr .. "); 383 org.docx4j.wml.Tr tr = (org.docx4j.wml.Tr)o; 384 for (Object o2 : tr.getEGContentCellContent() ) { 385 if ( o2 instanceof javax.xml.bind.JAXBElement) { 386 // Usual content for w:tr is w:tc 387 if ( ((JAXBElement)o2).getDeclaredType().getName().equals("org.docx4j.wml.Tc") ) { 388 log.debug( "\n in w:tc .. "); 389 org.docx4j.wml.Tc tc = (org.docx4j.wml.Tc)((JAXBElement)o2).getValue(); 390 391 // Look at the paragraphs in the tc 392 traverseMainDocumentRecursive( tc.getEGBlockLevelElts(), 393 fontsDiscovered, stylesInUse); 394 395 } else { 396 // Could be custom markup (custom XML or sdt) 397 log.warn("TODO - not w:tc - handle: " + XmlUtils.JAXBElementDebug((JAXBElement)o2) ); 398 } 399 } else if (o2 instanceof org.docx4j.wml.Tc) { 400 // Again, it could be this or wrapped in a JAXBElement! 401 traverseMainDocumentRecursive( ((org.docx4j.wml.Tc)o2).getEGBlockLevelElts(), 402 fontsDiscovered, stylesInUse); 403 404 } else { 405 // Could be custom markup (custom XML or sdt) 406 log.warn("TODO - not w:tc - handle: " + o2.getClass().getName() ); 407 } 408 } 409 } else { 410 // What? 411 log.warn("TODO - handle: " + o.getClass().getName() ); 412 } 413 414 } 415 416 417 418 } 419 345 420 346 421 private void inspectRPr(Object rPrObj, Map fontsDiscovered, Map stylesInUse) { -
trunk/docx4j/src/main/java/org/docx4j/openpackaging/parts/relationships/Namespaces.java
r665 r943 147 147 "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; 148 148 149 public final static String W_NAMESPACE_DECLARATION = "xmlns:w=\"" + NS_WORD12 + "\""; 150 149 151 // This is dom4j specific 150 152 @Deprecated -
trunk/docx4j/src/main/java/org/docx4j/samples/CreateWordprocessingMLDocument.java
r565 r943 24 24 import java.io.File; 25 25 26 import javax.xml.bind.JAXBContext; 27 import javax.xml.bind.Marshaller; 28 29 import org.docx4j.convert.out.flatOpcXml.FlatOpcXmlCreator; 30 import org.docx4j.jaxb.Context; 31 import org.docx4j.jaxb.NamespacePrefixMapperUtils; 32 import org.docx4j.model.table.TblFactory; 26 33 import org.docx4j.openpackaging.packages.WordprocessingMLPackage; 27 34 import org.docx4j.openpackaging.exceptions.InvalidFormatException; 28 35 import org.docx4j.openpackaging.io.SaveToZipFile; 36 import org.docx4j.wml.Tbl; 29 37 30 38 /** … … 37 45 38 46 public static void main(String[] args) throws Exception { 47 48 boolean save = false; 39 49 40 50 System.out.println( "Creating package.."); … … 87 97 org.docx4j.XmlUtils.unmarshalString(str) ); 88 98 89 90 System.out.println( ".. done!"); 99 // Let's add a table 100 int writableWidthTwips = wordMLPackage.getDocumentModel().getSections().get(0).getPageDimensions().getWritableWidthTwips(); 101 int cols = 3; 102 int cellWidthTwips = new Double( 103 Math.floor( (writableWidthTwips/cols )) 104 ).intValue(); 105 106 Tbl tbl = TblFactory.createTable(3, 3, cellWidthTwips); 107 wordMLPackage.getMainDocumentPart().addObject(tbl); 108 91 109 92 110 //injectDocPropsCustomPart(wordMLPackage); 93 111 94 // Now save it 95 wordMLPackage.save(new java.io.File(System.getProperty("user.dir") + "/bolds.docx") ); 112 // Now save it 113 if (save) { 114 System.out.println("Saved."); 115 wordMLPackage.save(new java.io.File(System.getProperty("user.dir") + "/bolds.docx") ); 116 } else { 117 // Create a org.docx4j.wml.Package object 118 FlatOpcXmlCreator worker = new FlatOpcXmlCreator(wordMLPackage); 119 org.docx4j.xmlPackage.Package pkg = worker.get(); 120 121 // Now marshall it 122 JAXBContext jc = Context.jcXmlPackage; 123 Marshaller marshaller=jc.createMarshaller(); 124 125 marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); 126 NamespacePrefixMapperUtils.setProperty(marshaller, 127 NamespacePrefixMapperUtils.getPrefixMapper()); 128 System.out.println( "\n\n OUTPUT " ); 129 System.out.println( "====== \n\n " ); 130 marshaller.marshal(pkg, System.out); 131 132 } 96 133 97 134 System.out.println("Done."); -
trunk/docx4j/src/main/java/org/docx4j/samples/OpenMainDocumentAndTraverse.java
r930 r943 30 30 import javax.xml.bind.Unmarshaller; 31 31 32 import org.docx4j.XmlUtils; 32 33 import org.docx4j.jaxb.Context; 33 34 import org.docx4j.openpackaging.io.LoadFromZipFile; … … 51 52 //String inputfilepath = "/home/dev/s.docx"; 52 53 //String inputfilepath = System.getProperty("user.dir") + "/sample-docs/AutoOpen.docm"; 53 String inputfilepath = System.getProperty("user.dir") + "/sample-docs/math.docx"; 54 //String inputfilepath = System.getProperty("user.dir") + "/sample-docs/math.docx"; 55 String inputfilepath = System.getProperty("user.dir") + "/sample-docs/table-spans.xml"; 54 56 55 57 boolean save = false; … … 125 127 if ( o instanceof javax.xml.bind.JAXBElement) { 126 128 127 System.out.println( o.getClass().getName() ); 128 System.out.println( ((JAXBElement)o).getName() ); 129 System.out.println( ((JAXBElement)o).getDeclaredType().getName() + "\n\n"); 129 System.out.println("\n"+ XmlUtils.JAXBElementDebug((JAXBElement)o) ); 130 130 131 131 if ( ((JAXBElement)o).getDeclaredType().getName().equals("org.docx4j.wml.Tbl") ) { … … 151 151 152 152 for (Object o : children ) { 153 System.out.println(" " + o.getClass().getName() );154 153 if ( o instanceof javax.xml.bind.JAXBElement) { 155 System.out.println(" " + ((JAXBElement)o).getName() );156 System.out.println( " " + ((JAXBElement)o).getDeclaredType().getName());154 155 System.out.println( "\n" + XmlUtils.JAXBElementDebug((JAXBElement)o) ); 157 156 158 157 // TODO - unmarshall directly to Text. … … 180 179 } 181 180 182 } else if (o instanceof org.w3c.dom.Node) { 183 System.out.println(" IGNORED " + ((org.w3c.dom.Node)o).getNodeName() ); 184 } else if ( o instanceof org.docx4j.wml.R) { 185 org.docx4j.wml.R run = (org.docx4j.wml.R)o; 186 if (run.getRPr()!=null) { 187 System.out.println(" " + "Properties..."); 188 if (run.getRPr().getB()!=null) { 189 System.out.println(" " + "B not null "); 190 System.out.println(" " + "--> " + run.getRPr().getB().isVal() ); 191 } else { 192 System.out.println(" " + "B null."); 181 } else { 182 System.out.println(" " + o.getClass().getName() ); 183 if ( o instanceof org.docx4j.wml.R) { 184 org.docx4j.wml.R run = (org.docx4j.wml.R)o; 185 if (run.getRPr()!=null) { 186 System.out.println(" " + "Properties..."); 187 if (run.getRPr().getB()!=null) { 188 System.out.println(" " + "B not null "); 189 System.out.println(" " + "--> " + run.getRPr().getB().isVal() ); 190 } else { 191 System.out.println(" " + "B null."); 192 } 193 193 } 194 } 195 walkList(run.getRunContent()); 196 197 } else { 198 199 System.out.println(" IGNORED " + o.getClass().getName() ); 200 194 walkList(run.getRunContent()); 195 } else if (o instanceof org.w3c.dom.Node) { 196 System.out.println(" IGNORED " + ((org.w3c.dom.Node)o).getNodeName() ); 197 } else { 198 System.out.println(" IGNORED " + o.getClass().getName() ); 199 } 201 200 } 202 201 // else if ( o instanceof org.docx4j.jaxb.document.Text) { … … 225 224 if (o instanceof org.docx4j.wml.Tr) { 226 225 226 System.out.println( "\n in w:tr .. "); 227 227 org.docx4j.wml.Tr tr = (org.docx4j.wml.Tr)o; 228 228 229 229 for (Object o2 : tr.getEGContentCellContent() ) { 230 230 231 System.out.println(" " + o2.getClass().getName() );232 231 if ( o2 instanceof javax.xml.bind.JAXBElement) { 233 232 234 233 if ( ((JAXBElement)o2).getDeclaredType().getName().equals("org.docx4j.wml.Tc") ) { 234 System.out.println( "\n in w:tc .. "); 235 235 org.docx4j.wml.Tc tc = (org.docx4j.wml.Tc)((JAXBElement)o2).getValue(); 236 236 … … 240 240 } else { 241 241 // What is it, if it isn't a Tc? 242 System.out.println(" " + ((JAXBElement)o).getName() ); 243 System.out.println(" " + ((JAXBElement)o).getDeclaredType().getName()); 242 System.out.println( "\n NOT Tc: " + XmlUtils.JAXBElementDebug((JAXBElement)o) ); 244 243 } 245 244 } else { -
trunk/docx4j/src/main/java/org/docx4j/wml/TblPr.java
r359 r943 25 25 import javax.xml.bind.annotation.XmlAccessType; 26 26 import javax.xml.bind.annotation.XmlAccessorType; 27 import javax.xml.bind.annotation.XmlRootElement; 27 28 import javax.xml.bind.annotation.XmlTransient; 28 29 import javax.xml.bind.annotation.XmlType; … … 53 54 "tblPrChange" 54 55 }) 56 @XmlRootElement(name = "tblPr") 55 57 public class TblPr 56 58 extends CTTblPrBase
Note: See TracChangeset
for help on using the changeset viewer.
