ASF Bugzilla – Attachment 26988 Details for
Bug 51188
[PATCH] Unable to set zoom level for word
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
adds zoom percent funcationality to settings.
XWPFSettings.java (text/plain), 6.26 KB, created by
byroncode
on 2011-05-12 01:52:54 UTC
(
hide
)
Description:
adds zoom percent funcationality to settings.
Filename:
MIME Type:
Creator:
byroncode
Created:
2011-05-12 01:52:54 UTC
Size:
6.26 KB
patch
obsolete
>/* ==================================================================== > Licensed to the Apache Software Foundation (ASF) under one or more > contributor license agreements. See the NOTICE file distributed with > this work for additional information regarding copyright ownership. > The ASF licenses this file to You under the Apache License, Version 2.0 > (the "License"); you may not use this file except in compliance with > the License. You may obtain a copy of the License at > > http://www.apache.org/licenses/LICENSE-2.0 > > Unless required by applicable law or agreed to in writing, software > distributed under the License is distributed on an "AS IS" BASIS, > WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > See the License for the specific language governing permissions and > limitations under the License. >==================================================================== */ >package org.apache.poi.xwpf.usermodel; > >import java.io.IOException; >import java.io.InputStream; >import java.io.OutputStream; >import java.util.HashMap; >import java.util.Map; > >import javax.xml.namespace.QName; > >import org.apache.poi.POIXMLDocumentPart; >import org.apache.poi.openxml4j.opc.PackagePart; >import org.apache.poi.openxml4j.opc.PackageRelationship; >import org.apache.xmlbeans.XmlOptions; >import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTDocProtect; >import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSettings; >import org.openxmlformats.schemas.wordprocessingml.x2006.main.STDocProtect; >import org.openxmlformats.schemas.wordprocessingml.x2006.main.STOnOff; >import org.openxmlformats.schemas.wordprocessingml.x2006.main.SettingsDocument; >import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTZoom; > >public class XWPFSettings extends POIXMLDocumentPart { > > private CTSettings ctSettings; > > public XWPFSettings(PackagePart part, PackageRelationship rel) throws IOException { > super(part, rel); > readFrom(part.getInputStream()); > } > > public XWPFSettings() { > super(); > ctSettings = CTSettings.Factory.newInstance(); > } > > > /** > * Verifies the documentProtection tag inside settings.xml file <br/> > * if the protection is enforced (w:enforcement="1") <br/> > * and if the kind of protection equals to passed (STDocProtect.Enum editValue) <br/> > * > * <br/> > * sample snippet from settings.xml > * <pre> > * <w:settings ... > > * <w:documentProtection w:edit="readOnly" w:enforcement="1"/> > * </pre> > * > * @return true if documentProtection is enforced with option readOnly > */ > public boolean isEnforcedWith(STDocProtect.Enum editValue) { > CTDocProtect ctDocProtect = ctSettings.getDocumentProtection(); > > if (ctDocProtect == null) { > return false; > } > > return ctDocProtect.getEnforcement().equals(STOnOff.X_1) && ctDocProtect.getEdit().equals(editValue); > } > > /** > * Enforces the protection with the option specified by passed editValue.<br/> > * <br/> > * In the documentProtection tag inside settings.xml file <br/> > * it sets the value of enforcement to "1" (w:enforcement="1") <br/> > * and the value of edit to the passed editValue (w:edit="[passed editValue]")<br/> > * <br/> > * sample snippet from settings.xml > * <pre> > * <w:settings ... > > * <w:documentProtection w:edit="[passed editValue]" w:enforcement="1"/> > * </pre> > */ > public void setEnforcementEditValue(org.openxmlformats.schemas.wordprocessingml.x2006.main.STDocProtect.Enum editValue) { > safeGetDocumentProtection().setEnforcement(STOnOff.X_1); > safeGetDocumentProtection().setEdit(editValue); > } > > /** > * Removes protection enforcement.<br/> > * In the documentProtection tag inside settings.xml file <br/> > * it sets the value of enforcement to "0" (w:enforcement="0") <br/> > */ > public void removeEnforcement() { > safeGetDocumentProtection().setEnforcement(STOnOff.X_0); > } > > @Override > protected void commit() throws IOException { > > XmlOptions xmlOptions = new XmlOptions(DEFAULT_XML_OPTIONS); > xmlOptions.setSaveSyntheticDocumentElement(new QName(CTSettings.type.getName().getNamespaceURI(), "settings")); > Map<String, String> map = new HashMap<String, String>(); > map.put("http://schemas.openxmlformats.org/wordprocessingml/2006/main", "w"); > xmlOptions.setSaveSuggestedPrefixes(map); > > PackagePart part = getPackagePart(); > OutputStream out = part.getOutputStream(); > ctSettings.save(out, xmlOptions); > out.close(); > } > > private CTDocProtect safeGetDocumentProtection() { > CTDocProtect documentProtection = ctSettings.getDocumentProtection(); > if (documentProtection == null) { > documentProtection = CTDocProtect.Factory.newInstance(); > ctSettings.setDocumentProtection(documentProtection); > } > return ctSettings.getDocumentProtection(); > } > > private void readFrom(InputStream inputStream) { > try { > ctSettings = SettingsDocument.Factory.parse(inputStream).getSettings(); > } catch (Exception e) { > throw new RuntimeException(e); > } > } > > /** > * Set zoom.<br/> > * In the zoom tag inside settings.xml file <br/> > * it sets the value of zoom > * <br/> > * sample snippet from settings.xml > * <pre> > * <w:zoom w:percent="50" /> > * <pre> > * @return percentage as an integer of zoom level > */ > public java.math.BigInteger getZoomPercent() { > CTZoom zoom; > if (!ctSettings.isSetZoom()) { > zoom = ctSettings.addNewZoom(); > } else { > zoom = ctSettings.getZoom(); > } > > return zoom.getPercent(); > } > > /** > * Set zoom.<br/> > * In the zoom tag inside settings.xml file <br/> > * it sets the value of zoom > * <br/> > * sample snippet from settings.xml > * <pre> > * <w:zoom w:percent="50" /> > * <pre> > * @return percentage as an integer of zoom level > */ > public void setZoomPercent(java.math.BigInteger zoomPercent) { > if (ctSettings.isSetZoom()) { > ctSettings.unsetZoom(); > } > CTZoom zoom = ctSettings.addNewZoom(); > zoom.setPercent(zoomPercent); > } > >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 51188
: 26988 |
26989