mirror of https://github.com/apache/poi.git
applied patch #45967 by Gisella Bronzetti: support for XSSFPrintSetup object
git-svn-id: https://svn.apache.org/repos/asf/poi/branches/ooxml@703778 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
b4e74b306c
commit
bff1825f78
|
@ -0,0 +1,31 @@
|
|||
package org.apache.poi.xssf.usermodel.examples;
|
||||
|
||||
import java.io.FileOutputStream;
|
||||
|
||||
import org.apache.poi.ss.usermodel.PrintSetup;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
|
||||
public class FitSheetToOnePage {
|
||||
|
||||
|
||||
public static void main(String[]args) throws Exception{
|
||||
Workbook wb = new XSSFWorkbook();
|
||||
Sheet sheet = wb.createSheet("format sheet");
|
||||
PrintSetup ps = sheet.getPrintSetup();
|
||||
|
||||
sheet.setAutobreaks(true);
|
||||
|
||||
ps.setFitHeight((short)1);
|
||||
ps.setFitWidth((short)1);
|
||||
|
||||
|
||||
// Create various cells and rows for spreadsheet.
|
||||
|
||||
FileOutputStream fileOut = new FileOutputStream("fitSheetToOnePage.xlsx");
|
||||
wb.write(fileOut);
|
||||
fileOut.close();
|
||||
|
||||
}
|
||||
}
|
|
@ -67,13 +67,7 @@ public interface PrintSetup {
|
|||
*/
|
||||
void setFitHeight(short height);
|
||||
|
||||
/**
|
||||
* Sets the options flags. Not advisable to do it directly.
|
||||
* @param options The bit flags for the options
|
||||
*/
|
||||
void setOptions(short options);
|
||||
|
||||
/**
|
||||
/**
|
||||
* Set whether to go left to right or top down in ordering
|
||||
* @param ltor left to right
|
||||
*/
|
||||
|
@ -181,12 +175,6 @@ public interface PrintSetup {
|
|||
*/
|
||||
short getFitHeight();
|
||||
|
||||
/**
|
||||
* Returns the bit flags for the options.
|
||||
* @return bit flags for the options
|
||||
*/
|
||||
short getOptions();
|
||||
|
||||
/**
|
||||
* Returns the left to right print order.
|
||||
* @return left to right print order
|
||||
|
|
|
@ -0,0 +1,65 @@
|
|||
/* ====================================================================
|
||||
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.xssf.usermodel;
|
||||
|
||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.STPageOrder;
|
||||
|
||||
/**
|
||||
* Specifies printed page order.
|
||||
*
|
||||
* @author Gisella Bronzetti
|
||||
*/
|
||||
public enum PageOrder {
|
||||
|
||||
/**
|
||||
* Order pages vertically first, then move horizontally.
|
||||
*/
|
||||
DOWN_THEN_OVER(STPageOrder.DOWN_THEN_OVER),
|
||||
/**
|
||||
* Order pages horizontally first, then move vertically
|
||||
*/
|
||||
OVER_THEN_DOWN(STPageOrder.OVER_THEN_DOWN);
|
||||
|
||||
|
||||
private STPageOrder.Enum order;
|
||||
|
||||
|
||||
PageOrder(STPageOrder.Enum order) {
|
||||
this.order = order;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns value of pages order
|
||||
*
|
||||
* @return String value of pages order
|
||||
*/
|
||||
public STPageOrder.Enum getValue() {
|
||||
return order;
|
||||
}
|
||||
|
||||
|
||||
public static PageOrder valueOf(STPageOrder.Enum pageOrder) {
|
||||
switch (pageOrder.intValue()) {
|
||||
case STPageOrder.INT_DOWN_THEN_OVER:
|
||||
return DOWN_THEN_OVER;
|
||||
case STPageOrder.INT_OVER_THEN_DOWN:
|
||||
return OVER_THEN_DOWN;
|
||||
}
|
||||
throw new RuntimeException("PageOrder value [" + pageOrder + "] not supported");
|
||||
}
|
||||
}
|
35
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorksheet.java → src/ooxml/java/org/apache/poi/xssf/usermodel/PaperSize.java
Normal file → Executable file
35
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorksheet.java → src/ooxml/java/org/apache/poi/xssf/usermodel/PaperSize.java
Normal file → Executable file
|
@ -17,15 +17,28 @@
|
|||
|
||||
package org.apache.poi.xssf.usermodel;
|
||||
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheet;
|
||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorksheet;
|
||||
|
||||
public class XSSFWorksheet extends XSSFSheet implements Sheet{
|
||||
|
||||
public XSSFWorksheet(CTSheet sheet, CTWorksheet worksheet,
|
||||
XSSFWorkbook workbook) {
|
||||
super(sheet, worksheet, workbook);
|
||||
}
|
||||
|
||||
/**
|
||||
* The enumeration value indicating the possible paper size for a sheet
|
||||
*
|
||||
* @author Daniele Montagni
|
||||
*/
|
||||
public enum PaperSize {
|
||||
LETTER_PAPER,
|
||||
LETTER_SMALL_PAPER,
|
||||
TABLOID_PAPER,
|
||||
LEDGER_PAPER,
|
||||
LEGAL_PAPER,
|
||||
STATEMENT_PAPER,
|
||||
EXECUTIVE_PAPER,
|
||||
A3_PAPER,
|
||||
A4_PAPER,
|
||||
A4_SMALL_PAPER,
|
||||
A5_PAPER,
|
||||
B4_PAPER,
|
||||
B5_PAPER,
|
||||
FOLIO_PAPER,
|
||||
QUARTO_PAPER,
|
||||
STANDARD_PAPER_10_14,
|
||||
STANDARD_PAPER_11_17;
|
||||
|
||||
}
|
|
@ -0,0 +1,73 @@
|
|||
/* ====================================================================
|
||||
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.xssf.usermodel;
|
||||
|
||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.STCellComments;
|
||||
|
||||
/**
|
||||
* These enumerations specify how cell comments shall be displayed for paper printing purposes.
|
||||
*
|
||||
* @author Gisella Bronzetti
|
||||
*/
|
||||
public enum PrintCellComments {
|
||||
|
||||
/**
|
||||
* Do not print cell comments.
|
||||
*/
|
||||
NONE(STCellComments.NONE),
|
||||
/**
|
||||
* Print cell comments as displayed.
|
||||
*/
|
||||
AS_DISPLAYED(STCellComments.AS_DISPLAYED),
|
||||
/**
|
||||
* Print cell comments at end of document.
|
||||
*/
|
||||
AT_END(STCellComments.AT_END);
|
||||
|
||||
|
||||
private STCellComments.Enum comments;
|
||||
|
||||
|
||||
PrintCellComments(STCellComments.Enum comments) {
|
||||
this.comments = comments;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns comments of cell
|
||||
*
|
||||
* @return String comments of cell
|
||||
*/
|
||||
public STCellComments.Enum getValue() {
|
||||
return comments;
|
||||
}
|
||||
|
||||
|
||||
public static PrintCellComments valueOf(STCellComments.Enum cellComment) {
|
||||
switch (cellComment.intValue()) {
|
||||
case STCellComments.INT_AS_DISPLAYED:
|
||||
return AS_DISPLAYED;
|
||||
case STCellComments.INT_AT_END:
|
||||
return AT_END;
|
||||
case STCellComments.INT_NONE:
|
||||
return NONE;
|
||||
}
|
||||
throw new RuntimeException("PrintCellComments: value [" + cellComment + "] not supported");
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,77 @@
|
|||
/* ====================================================================
|
||||
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.xssf.usermodel;
|
||||
|
||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.STOrientation;
|
||||
|
||||
/**
|
||||
* The enumeration value indicating the print orientation for a sheet.
|
||||
*
|
||||
* @author Gisella Bronzetti
|
||||
*/
|
||||
public enum PrintOrientation {
|
||||
|
||||
/**
|
||||
* orientation not specified
|
||||
*/
|
||||
DEFAULT(STOrientation.DEFAULT),
|
||||
/**
|
||||
* portrait orientation
|
||||
*/
|
||||
PORTRAIT(STOrientation.PORTRAIT),
|
||||
/**
|
||||
* landscape orientations
|
||||
*/
|
||||
LANDSCAPE(STOrientation.LANDSCAPE);
|
||||
|
||||
|
||||
private STOrientation.Enum orientation;
|
||||
|
||||
|
||||
PrintOrientation(STOrientation.Enum orientation) {
|
||||
this.orientation = orientation;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns value of the orientation
|
||||
*
|
||||
* @return String value of the orientation
|
||||
*/
|
||||
public STOrientation.Enum getValue() {
|
||||
return orientation;
|
||||
}
|
||||
|
||||
|
||||
public static PrintOrientation valueOf(STOrientation.Enum orient) {
|
||||
switch (orient.intValue()) {
|
||||
case STOrientation.INT_DEFAULT:
|
||||
return DEFAULT;
|
||||
case STOrientation.INT_LANDSCAPE:
|
||||
return LANDSCAPE;
|
||||
case STOrientation.INT_PORTRAIT:
|
||||
return PORTRAIT;
|
||||
/*
|
||||
default:
|
||||
return DEFAULT;
|
||||
*/
|
||||
}
|
||||
throw new RuntimeException("Orientation value [" + orient + "] not supported");
|
||||
}
|
||||
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
package org.apache.poi.xssf.usermodel;
|
||||
|
||||
/**
|
||||
* All know type of automatic shapes in DrawingML
|
||||
* All known types of automatic shapes in DrawingML
|
||||
*
|
||||
* @author Yegor Kozlov
|
||||
*/
|
||||
|
|
|
@ -45,7 +45,7 @@ public class XSSFDrawing extends POIXMLDocumentPart {
|
|||
/**
|
||||
* Create a new SpreadsheetML drawing
|
||||
*
|
||||
* @see org.apache.poi.xssf.usermodel.XSSFWorksheet#createDrawingPatriarch()
|
||||
* @see org.apache.poi.xssf.usermodel.XSSFSheet#createDrawingPatriarch()
|
||||
*/
|
||||
public XSSFDrawing() {
|
||||
super(null, null);
|
||||
|
|
|
@ -0,0 +1,455 @@
|
|||
/* ====================================================================
|
||||
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.xssf.usermodel;
|
||||
|
||||
import org.apache.poi.ss.usermodel.PrintSetup;
|
||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPageMargins;
|
||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPageSetup;
|
||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorksheet;
|
||||
|
||||
|
||||
/**
|
||||
* Page setup and page margins settings for the worksheet.
|
||||
*/
|
||||
public class XSSFPrintSetup implements PrintSetup {
|
||||
|
||||
private CTWorksheet ctWorksheet;
|
||||
private CTPageSetup pageSetup;
|
||||
private CTPageMargins pageMargins;
|
||||
|
||||
|
||||
public XSSFPrintSetup(CTWorksheet worksheet) {
|
||||
if (worksheet == null) throw new NullPointerException("");
|
||||
this.ctWorksheet = worksheet;
|
||||
this.pageSetup = ctWorksheet.getPageSetup() == null ? ctWorksheet.addNewPageSetup() : ctWorksheet.getPageSetup();
|
||||
this.pageMargins = ctWorksheet.getPageMargins() == null ? ctWorksheet.addNewPageMargins() : ctWorksheet.getPageMargins();
|
||||
}
|
||||
|
||||
public XSSFPrintSetup(XSSFSheet sheet) {
|
||||
this(sheet.getWorksheet());
|
||||
}
|
||||
|
||||
public XSSFPrintSetup(CTPageSetup pageSetup, CTPageMargins pageMargins) {
|
||||
this.pageMargins = pageMargins;
|
||||
this.pageSetup = pageSetup;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set the paper size.
|
||||
*
|
||||
* @param size the paper size.
|
||||
*/
|
||||
public void setPaperSize(short size) {
|
||||
pageSetup.setPaperSize(size);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the paper size as enum value.
|
||||
*
|
||||
* @param size value for the paper size.
|
||||
*/
|
||||
public void setPaperSize(PaperSize size) {
|
||||
setPaperSize((short) (size.ordinal() + 1));
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the scale.
|
||||
* Valid values range from 10 to 400.
|
||||
* This setting is overridden when fitToWidth and/or fitToHeight are in use
|
||||
*
|
||||
* @param scale the scale to use
|
||||
*/
|
||||
public void setScale(short scale) {
|
||||
if (scale < 10 || scale > 400) throw new RuntimeException("Scale value not accepted: you must choose a value between 10 and 400.");
|
||||
pageSetup.setScale(scale);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the page numbering start.
|
||||
* Page number for first printed page. If no value is specified, then 'automatic' is assumed.
|
||||
*
|
||||
* @param start the page numbering start
|
||||
*/
|
||||
public void setPageStart(short start) {
|
||||
pageSetup.setFirstPageNumber(start);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the number of pages wide to fit the sheet in
|
||||
*
|
||||
* @param width the number of pages
|
||||
*/
|
||||
public void setFitWidth(short width) {
|
||||
pageSetup.setFitToWidth(width);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the number of pages high to fit the sheet in
|
||||
*
|
||||
* @param height the number of pages
|
||||
*/
|
||||
public void setFitHeight(short height) {
|
||||
pageSetup.setFitToHeight(height);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether to go left to right or top down in ordering
|
||||
*
|
||||
* @param ltor left to right
|
||||
*/
|
||||
public void setLeftToRight(boolean ltor) {
|
||||
if (ltor)
|
||||
setPageOrder(PageOrder.OVER_THEN_DOWN);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether to print in landscape
|
||||
*
|
||||
* @param ls landscape
|
||||
*/
|
||||
public void setLandscape(boolean ls) {
|
||||
if (ls)
|
||||
setOrientation(PrintOrientation.LANDSCAPE);
|
||||
}
|
||||
|
||||
/**
|
||||
* Use the printer's defaults settings for page setup values and don't use the default values
|
||||
* specified in the schema. For example, if dpi is not present or specified in the XML, the
|
||||
* a plication shall not assume 600dpi as specified in the schema as a default and instead
|
||||
* shall let the printer specify the default dpi.
|
||||
*
|
||||
* @param valid Valid
|
||||
*/
|
||||
public void setValidSettings(boolean valid) {
|
||||
pageSetup.setUsePrinterDefaults(valid);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether it is black and white
|
||||
*
|
||||
* @param mono Black and white
|
||||
*/
|
||||
public void setNoColor(boolean mono) {
|
||||
pageSetup.setBlackAndWhite(mono);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether it is in draft mode
|
||||
*
|
||||
* @param d draft
|
||||
*/
|
||||
public void setDraft(boolean d) {
|
||||
pageSetup.setDraft(d);
|
||||
}
|
||||
|
||||
/**
|
||||
* Print the include notes
|
||||
*
|
||||
* @param printnotes print the notes
|
||||
*/
|
||||
public void setNotes(boolean printnotes) {
|
||||
if (printnotes)
|
||||
pageSetup.setCellComments(PrintCellComments.AS_DISPLAYED.getValue());
|
||||
}
|
||||
|
||||
/**
|
||||
* Set no orientation.
|
||||
*
|
||||
* @param orientation Orientation.
|
||||
*/
|
||||
public void setNoOrientation(boolean orientation) {
|
||||
if (orientation) {
|
||||
setOrientation(PrintOrientation.DEFAULT);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether to use page start
|
||||
*
|
||||
* @param page Use page start
|
||||
*/
|
||||
public void setUsePage(boolean page) {
|
||||
pageSetup.setUseFirstPageNumber(page);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the horizontal resolution.
|
||||
*
|
||||
* @param resolution horizontal resolution
|
||||
*/
|
||||
public void setHResolution(short resolution) {
|
||||
pageSetup.setHorizontalDpi(resolution);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the vertical resolution.
|
||||
*
|
||||
* @param resolution vertical resolution
|
||||
*/
|
||||
public void setVResolution(short resolution) {
|
||||
pageSetup.setVerticalDpi(resolution);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the header margin.
|
||||
*
|
||||
* @param headermargin header margin
|
||||
*/
|
||||
public void setHeaderMargin(double headermargin) {
|
||||
pageMargins.setHeader(headermargin);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the footer margin.
|
||||
*
|
||||
* @param footermargin footer margin
|
||||
*/
|
||||
public void setFooterMargin(double footermargin) {
|
||||
pageMargins.setFooter(footermargin);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the number of copies.
|
||||
*
|
||||
* @param copies number of copies
|
||||
*/
|
||||
public void setCopies(short copies) {
|
||||
pageSetup.setCopies(copies);
|
||||
}
|
||||
|
||||
/**
|
||||
* Orientation of the page: landscape - portrait.
|
||||
*
|
||||
* @param orientation - Orientation of the page
|
||||
* @see PrintOrientation
|
||||
*/
|
||||
public void setOrientation(PrintOrientation orientation) {
|
||||
pageSetup.setOrientation(orientation.getValue());
|
||||
}
|
||||
|
||||
/**
|
||||
* Orientation of the page: landscape - portrait.
|
||||
*
|
||||
* @return Orientation of the page
|
||||
* @see PrintOrientation
|
||||
*/
|
||||
public PrintOrientation getOrientation() {
|
||||
return (pageSetup.getOrientation() == null) ? null : PrintOrientation.valueOf(pageSetup.getOrientation());
|
||||
}
|
||||
|
||||
|
||||
public PrintCellComments getCellComment() {
|
||||
return (pageSetup.getCellComments() == null) ? null : PrintCellComments.valueOf(pageSetup.getCellComments());
|
||||
}
|
||||
|
||||
/**
|
||||
* Set print page order.
|
||||
*
|
||||
* @param pageOrder
|
||||
*/
|
||||
public void setPageOrder(PageOrder pageOrder) {
|
||||
pageSetup.setPageOrder(pageOrder.getValue());
|
||||
}
|
||||
|
||||
/**
|
||||
* get print page order.
|
||||
*
|
||||
* @return PageOrder
|
||||
*/
|
||||
public PageOrder getPageOrder() {
|
||||
return (pageSetup.getPageOrder() == null) ? null : PageOrder.valueOf(pageSetup.getPageOrder());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the paper size.
|
||||
*
|
||||
* @return short - paper size
|
||||
*/
|
||||
public short getPaperSize() {
|
||||
return (short) pageSetup.getPaperSize();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the paper size as enum.
|
||||
*
|
||||
* @return PaperSize paper size
|
||||
* @see PaperSize
|
||||
*/
|
||||
public PaperSize getPaperSizeEnum() {
|
||||
return PaperSize.values()[((int) getPaperSize() - 1)];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the scale.
|
||||
*
|
||||
* @return short - scale
|
||||
*/
|
||||
public short getScale() {
|
||||
return (short) pageSetup.getScale();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the page numbering start.
|
||||
* Page number for first printed page. If no value is specified, then 'automatic' is assumed.
|
||||
*
|
||||
* @return page number for first printed page
|
||||
*/
|
||||
public short getPageStart() {
|
||||
return (short) pageSetup.getFirstPageNumber();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the number of pages wide to fit sheet in.
|
||||
*
|
||||
* @return number of pages wide to fit sheet in
|
||||
*/
|
||||
public short getFitWidth() {
|
||||
return (short) pageSetup.getFitToWidth();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the number of pages high to fit the sheet in.
|
||||
*
|
||||
* @return number of pages high to fit the sheet in
|
||||
*/
|
||||
public short getFitHeight() {
|
||||
return (short) pageSetup.getFitToHeight();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the left to right print order.
|
||||
*
|
||||
* @return left to right print order
|
||||
*/
|
||||
public boolean getLeftToRight() {
|
||||
return getPageOrder() == PageOrder.OVER_THEN_DOWN;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the landscape mode.
|
||||
*
|
||||
* @return landscape mode
|
||||
*/
|
||||
public boolean getLandscape() {
|
||||
return getOrientation() == PrintOrientation.LANDSCAPE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Use the printerÕs defaults settings for page setup values and don't use the default values
|
||||
* specified in the schema. For example, if dpi is not present or specified in the XML, the
|
||||
* application shall not assume 600dpi as specified in the schema as a default and instead
|
||||
* shall let the printer specify the default dpi.
|
||||
*
|
||||
* @return valid settings
|
||||
*/
|
||||
public boolean getValidSettings() {
|
||||
return pageSetup.getUsePrinterDefaults();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the black and white setting.
|
||||
*
|
||||
* @return black and white setting
|
||||
*/
|
||||
public boolean getNoColor() {
|
||||
return pageSetup.getBlackAndWhite();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the draft mode.
|
||||
*
|
||||
* @return draft mode
|
||||
*/
|
||||
public boolean getDraft() {
|
||||
return pageSetup.getDraft();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the print notes.
|
||||
*
|
||||
* @return print notes
|
||||
*/
|
||||
public boolean getNotes() {
|
||||
return getCellComment() == PrintCellComments.AS_DISPLAYED;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the no orientation.
|
||||
*
|
||||
* @return no orientation
|
||||
*/
|
||||
public boolean getNoOrientation() {
|
||||
return getOrientation() == PrintOrientation.DEFAULT;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the use page numbers.
|
||||
*
|
||||
* @return use page numbers
|
||||
*/
|
||||
public boolean getUsePage() {
|
||||
return pageSetup.getUseFirstPageNumber();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the horizontal resolution.
|
||||
*
|
||||
* @return horizontal resolution
|
||||
*/
|
||||
public short getHResolution() {
|
||||
return (short) pageSetup.getHorizontalDpi();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the vertical resolution.
|
||||
*
|
||||
* @return vertical resolution
|
||||
*/
|
||||
public short getVResolution() {
|
||||
return (short) pageSetup.getVerticalDpi();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the header margin.
|
||||
*
|
||||
* @return header margin
|
||||
*/
|
||||
public double getHeaderMargin() {
|
||||
return pageMargins.getHeader();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the footer margin.
|
||||
*
|
||||
* @return footer margin
|
||||
*/
|
||||
public double getFooterMargin() {
|
||||
return pageMargins.getFooter();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the number of copies.
|
||||
*
|
||||
* @return number of copies
|
||||
*/
|
||||
public short getCopies() {
|
||||
return (short) pageSetup.getCopies();
|
||||
}
|
||||
|
||||
}
|
|
@ -22,6 +22,7 @@ import java.io.OutputStream;
|
|||
import java.util.*;
|
||||
import javax.xml.namespace.QName;
|
||||
|
||||
import org.apache.poi.hssf.usermodel.HSSFPrintSetup;
|
||||
import org.apache.poi.hssf.util.PaneInformation;
|
||||
import org.apache.poi.ss.usermodel.CellStyle;
|
||||
import org.apache.poi.ss.usermodel.CommentsSource;
|
||||
|
@ -699,9 +700,8 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
|
|||
return counter;
|
||||
}
|
||||
|
||||
public PrintSetup getPrintSetup() {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
public XSSFPrintSetup getPrintSetup() {
|
||||
return new XSSFPrintSetup(getWorksheet());
|
||||
}
|
||||
|
||||
public boolean getProtect() {
|
||||
|
|
|
@ -54,6 +54,7 @@ public final class AllXSSFUsermodelTests {
|
|||
result.addTestSuite(TestXSSFWorkbook.class);
|
||||
|
||||
result.addTestSuite(TestXSSFFont.class);
|
||||
result.addTestSuite(TestXSSFPrintSetup.class);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,209 @@
|
|||
/* ====================================================================
|
||||
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.xssf.usermodel;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPageMargins;
|
||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPageSetup;
|
||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.STCellComments;
|
||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.STOrientation;
|
||||
import org.openxmlformats.schemas.spreadsheetml.x2006.main.STPageOrder;
|
||||
|
||||
/**
|
||||
* Tests for {@link XSSFPrintSetup}
|
||||
*
|
||||
*/
|
||||
public class TestXSSFPrintSetup extends TestCase {
|
||||
|
||||
|
||||
public void testConstructor(){
|
||||
CTPageSetup pSetup=CTPageSetup.Factory.newInstance();
|
||||
CTPageMargins pMargins=CTPageMargins.Factory.newInstance();
|
||||
XSSFPrintSetup printSetup=new XSSFPrintSetup(pSetup, pMargins);
|
||||
assertNotNull(printSetup);
|
||||
|
||||
XSSFWorkbook wb=new XSSFWorkbook();
|
||||
printSetup=new XSSFPrintSetup(wb.createSheet());
|
||||
assertNotNull(printSetup);
|
||||
}
|
||||
|
||||
public void testSetGetPaperSize() {
|
||||
CTPageSetup pSetup=CTPageSetup.Factory.newInstance();
|
||||
pSetup.setPaperSize(9);
|
||||
XSSFPrintSetup printSetup=new XSSFPrintSetup(pSetup, null);
|
||||
assertEquals(PaperSize.A4_PAPER,printSetup.getPaperSizeEnum());
|
||||
assertEquals(9,printSetup.getPaperSize());
|
||||
|
||||
printSetup.setPaperSize(PaperSize.A3_PAPER);
|
||||
assertEquals(8,pSetup.getPaperSize());
|
||||
}
|
||||
|
||||
|
||||
public void testSetGetScale() {
|
||||
CTPageSetup pSetup=CTPageSetup.Factory.newInstance();
|
||||
pSetup.setScale(9);
|
||||
XSSFPrintSetup printSetup=new XSSFPrintSetup(pSetup, null);
|
||||
assertEquals(9,printSetup.getScale());
|
||||
|
||||
printSetup.setScale((short)100);
|
||||
assertEquals(100,pSetup.getScale());
|
||||
}
|
||||
|
||||
public void testSetGetPageStart() {
|
||||
CTPageSetup pSetup=CTPageSetup.Factory.newInstance();
|
||||
pSetup.setFirstPageNumber(9);
|
||||
XSSFPrintSetup printSetup=new XSSFPrintSetup(pSetup, null);
|
||||
assertEquals(9,printSetup.getPageStart());
|
||||
|
||||
printSetup.setPageStart((short)1);
|
||||
assertEquals(1,pSetup.getFirstPageNumber());
|
||||
}
|
||||
|
||||
|
||||
public void testSetGetFitWidthHeight() {
|
||||
CTPageSetup pSetup=CTPageSetup.Factory.newInstance();
|
||||
pSetup.setFitToWidth(50);
|
||||
pSetup.setFitToHeight(99);
|
||||
XSSFPrintSetup printSetup=new XSSFPrintSetup(pSetup, null);
|
||||
assertEquals(50,printSetup.getFitWidth());
|
||||
assertEquals(99,printSetup.getFitHeight());
|
||||
|
||||
printSetup.setFitWidth((short)66);
|
||||
printSetup.setFitHeight((short)80);
|
||||
assertEquals(66,pSetup.getFitToWidth());
|
||||
assertEquals(80,pSetup.getFitToHeight());
|
||||
|
||||
}
|
||||
|
||||
public void testSetGetLeftToRight() {
|
||||
CTPageSetup pSetup=CTPageSetup.Factory.newInstance();
|
||||
pSetup.setPageOrder(STPageOrder.DOWN_THEN_OVER);
|
||||
XSSFPrintSetup printSetup=new XSSFPrintSetup(pSetup, null);
|
||||
assertEquals(false,printSetup.getLeftToRight());
|
||||
|
||||
printSetup.setLeftToRight(true);
|
||||
assertEquals(PageOrder.OVER_THEN_DOWN.getValue(),pSetup.getPageOrder());
|
||||
}
|
||||
|
||||
public void testSetGetOrientation() {
|
||||
CTPageSetup pSetup=CTPageSetup.Factory.newInstance();
|
||||
pSetup.setOrientation(STOrientation.PORTRAIT);
|
||||
XSSFPrintSetup printSetup=new XSSFPrintSetup(pSetup, null);
|
||||
assertEquals(PrintOrientation.PORTRAIT,printSetup.getOrientation());
|
||||
assertEquals(false,printSetup.getLandscape());
|
||||
assertEquals(false,printSetup.getNoOrientation());
|
||||
|
||||
printSetup.setOrientation(PrintOrientation.LANDSCAPE);
|
||||
assertEquals(pSetup.getOrientation(),printSetup.getOrientation().getValue());
|
||||
assertEquals(true,printSetup.getLandscape());
|
||||
assertEquals(false,printSetup.getNoOrientation());
|
||||
}
|
||||
|
||||
|
||||
public void testSetGetValidSettings() {
|
||||
CTPageSetup pSetup=CTPageSetup.Factory.newInstance();
|
||||
pSetup.setUsePrinterDefaults(false);
|
||||
XSSFPrintSetup printSetup=new XSSFPrintSetup(pSetup, null);
|
||||
assertEquals(false,printSetup.getValidSettings());
|
||||
|
||||
printSetup.setValidSettings(true);
|
||||
assertEquals(true,pSetup.getUsePrinterDefaults());
|
||||
}
|
||||
|
||||
public void testSetGetNoColor() {
|
||||
CTPageSetup pSetup=CTPageSetup.Factory.newInstance();
|
||||
pSetup.setBlackAndWhite(false);
|
||||
XSSFPrintSetup printSetup=new XSSFPrintSetup(pSetup, null);
|
||||
assertEquals(false,printSetup.getNoColor());
|
||||
|
||||
printSetup.setNoColor(true);
|
||||
assertEquals(true,pSetup.getBlackAndWhite());
|
||||
}
|
||||
|
||||
public void testSetGetDraft() {
|
||||
CTPageSetup pSetup=CTPageSetup.Factory.newInstance();
|
||||
pSetup.setDraft(false);
|
||||
XSSFPrintSetup printSetup=new XSSFPrintSetup(pSetup, null);
|
||||
assertEquals(false,printSetup.getDraft());
|
||||
|
||||
printSetup.setDraft(true);
|
||||
assertEquals(true,pSetup.getDraft());
|
||||
}
|
||||
|
||||
public void testSetGetNotes() {
|
||||
CTPageSetup pSetup=CTPageSetup.Factory.newInstance();
|
||||
pSetup.setCellComments(STCellComments.NONE);
|
||||
XSSFPrintSetup printSetup=new XSSFPrintSetup(pSetup, null);
|
||||
assertEquals(false,printSetup.getNotes());
|
||||
|
||||
printSetup.setNotes(true);
|
||||
assertEquals(PrintCellComments.AS_DISPLAYED.getValue(),pSetup.getCellComments());
|
||||
}
|
||||
|
||||
|
||||
public void testSetGetUsePage() {
|
||||
CTPageSetup pSetup=CTPageSetup.Factory.newInstance();
|
||||
pSetup.setUseFirstPageNumber(false);
|
||||
XSSFPrintSetup printSetup=new XSSFPrintSetup(pSetup, null);
|
||||
assertEquals(false,printSetup.getUsePage());
|
||||
|
||||
printSetup.setUsePage(true);
|
||||
assertEquals(true,pSetup.getUseFirstPageNumber());
|
||||
}
|
||||
|
||||
public void testSetGetHVResolution() {
|
||||
CTPageSetup pSetup=CTPageSetup.Factory.newInstance();
|
||||
pSetup.setHorizontalDpi(120);
|
||||
pSetup.setVerticalDpi(100);
|
||||
XSSFPrintSetup printSetup=new XSSFPrintSetup(pSetup, null);
|
||||
assertEquals(120,printSetup.getHResolution());
|
||||
assertEquals(100,printSetup.getVResolution());
|
||||
|
||||
printSetup.setHResolution((short)150);
|
||||
printSetup.setVResolution((short)130);
|
||||
assertEquals(150,pSetup.getHorizontalDpi());
|
||||
assertEquals(130,pSetup.getVerticalDpi());
|
||||
}
|
||||
|
||||
public void testSetGetHeaderFooterMargin() {
|
||||
CTPageMargins pMargins=CTPageMargins.Factory.newInstance();
|
||||
pMargins.setHeader(1.5);
|
||||
pMargins.setFooter(2);
|
||||
XSSFPrintSetup printSetup=new XSSFPrintSetup( null, pMargins);
|
||||
assertEquals(1.5,printSetup.getHeaderMargin());
|
||||
assertEquals(2.0,printSetup.getFooterMargin());
|
||||
|
||||
printSetup.setHeaderMargin(5);
|
||||
printSetup.setFooterMargin(3.5);
|
||||
assertEquals(5.0,pMargins.getHeader());
|
||||
assertEquals(3.5,pMargins.getFooter());
|
||||
}
|
||||
|
||||
public void testSetGetCopies() {
|
||||
CTPageSetup pSetup=CTPageSetup.Factory.newInstance();
|
||||
pSetup.setCopies(9);
|
||||
XSSFPrintSetup printSetup=new XSSFPrintSetup(pSetup, null);
|
||||
assertEquals(9,printSetup.getCopies());
|
||||
|
||||
printSetup.setCopies((short)15);
|
||||
assertEquals(15,pSetup.getCopies());
|
||||
}
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue