]> source.dussan.org Git - poi.git/commitdiff
Add possibility to set zoomPercent for XWPFDocument
authorDominik Stadler <centic@apache.org>
Wed, 26 Aug 2015 19:34:28 +0000 (19:34 +0000)
committerDominik Stadler <centic@apache.org>
Wed, 26 Aug 2015 19:34:28 +0000 (19:34 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1697992 13f79535-47bb-0310-9956-ffa450edef68

src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java
src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFSettings.java
src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFDocument.java

index 707f142bf3b62da7a7c373a8e712bd2d24e0daec..be206d73985e091e6c1a870f2e8bb1e8031d2214 100644 (file)
@@ -1199,6 +1199,25 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
         settings.setTrackRevisions(enable);
     }
 
+
+    /**
+     * Returns the current zoom factor in percent values, i.e. 100 is normal zoom.
+     *
+     * @return A percent value denoting the current zoom setting of this document.
+     */
+    public long getZoomPercent() {
+        return settings.getZoomPercent();
+    }
+
+    /**
+     * Set the zoom setting as percent value, i.e. 100 is normal zoom.
+     *
+     * @param zoomPercent A percent value denoting the zoom setting for this document.
+     */
+    public void setZoomPercent(long zoomPercent) {
+        settings.setZoomPercent(zoomPercent);;
+    }
+    
     /**
      * inserts an existing XWPFTable to the arrays bodyElements and tables
      *
index 6ce7e2ac3d3f653a098387e95b054b31c57faacf..778f020f291301d403fe164cdee11d371f491f86 100644 (file)
@@ -84,7 +84,12 @@ public class XWPFSettings extends POIXMLDocumentPart {
             zoom = ctSettings.getZoom();
         }
 
-        return zoom.getPercent().longValue();
+        
+        BigInteger percent = zoom.getPercent();
+        if(percent == null) {
+            return 100;
+        }
+        return percent.longValue();
     }
 
     /**
index f46fd716b4051e3764a90a524f40245f65462816..034e7118b39bbc244d4524a7c1d391b6d93124dc 100644 (file)
 
 package org.apache.poi.xwpf.usermodel;
 
+import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.util.Arrays;
 import java.util.List;
 
-import junit.framework.TestCase;
 import org.apache.poi.POIXMLDocumentPart;
 import org.apache.poi.POIXMLProperties;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
@@ -36,6 +36,8 @@ import org.apache.poi.xwpf.XWPFTestDataSamples;
 import org.apache.xmlbeans.XmlCursor;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP;
 
+import junit.framework.TestCase;
+
 public final class TestXWPFDocument extends TestCase {
 
     public void testContainsMainContentType() throws Exception {
@@ -352,9 +354,29 @@ public final class TestXWPFDocument extends TestCase {
         assertEquals(0, extendedProperties.getUnderlyingProperties().getCharacters());
     }
 
-    public void testSettings() {
+    public void testSettings() throws IOException {
         XWPFSettings settings = new XWPFSettings();
+        assertEquals(100, settings.getZoomPercent());
         settings.setZoomPercent(50);
         assertEquals(50, settings.getZoomPercent());
+
+        XWPFDocument doc = new XWPFDocument();
+        assertEquals(100, doc.getZoomPercent());
+
+        doc.setZoomPercent(50);
+        assertEquals(50, doc.getZoomPercent());
+
+        doc.setZoomPercent(200);
+        assertEquals(200, doc.getZoomPercent());
+
+        XWPFDocument back = XWPFTestDataSamples.writeOutAndReadBack(doc);
+        assertEquals(200, back.getZoomPercent());
+        back.close();
+
+//        OutputStream out = new FileOutputStream("/tmp/testZoom.docx");
+//        doc.write(out);
+//        out.close();
+
+        doc.close();
     }
 }