123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324 |
- /* ====================================================================
- 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 static org.junit.jupiter.api.Assertions.assertEquals;
- import static org.junit.jupiter.api.Assertions.assertFalse;
- import static org.junit.jupiter.api.Assertions.assertTrue;
-
- import org.apache.poi.ss.usermodel.PageOrder;
- import org.apache.poi.ss.usermodel.PaperSize;
- import org.apache.poi.ss.usermodel.PrintCellComments;
- import org.apache.poi.ss.usermodel.PrintOrientation;
- import org.apache.poi.xssf.XSSFITestDataProvider;
- import org.junit.jupiter.api.Disabled;
- import org.junit.jupiter.api.Test;
- import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPageMargins;
- import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPageSetup;
- import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorksheet;
- 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}
- */
- class TestXSSFPrintSetup {
- @Test
- void testSetGetPaperSize() {
- CTWorksheet worksheet = CTWorksheet.Factory.newInstance();
- CTPageSetup pSetup = worksheet.addNewPageSetup();
- pSetup.setPaperSize(9);
- XSSFPrintSetup printSetup = new XSSFPrintSetup(worksheet);
- assertEquals(PaperSize.A4_PAPER, printSetup.getPaperSizeEnum());
- assertEquals(9, printSetup.getPaperSize());
-
- printSetup.setPaperSize(PaperSize.A3_PAPER);
- assertEquals(8, pSetup.getPaperSize());
- }
-
- @Test
- void testSetGetScale() {
- CTWorksheet worksheet = CTWorksheet.Factory.newInstance();
- CTPageSetup pSetup = worksheet.addNewPageSetup();
- pSetup.setScale(9);
- XSSFPrintSetup printSetup = new XSSFPrintSetup(worksheet);
- assertEquals(9, printSetup.getScale());
-
- printSetup.setScale((short) 100);
- assertEquals(100, pSetup.getScale());
- }
-
- @Test
- void testSetGetPageStart() {
- CTWorksheet worksheet = CTWorksheet.Factory.newInstance();
- CTPageSetup pSetup = worksheet.addNewPageSetup();
- pSetup.setFirstPageNumber(9);
- XSSFPrintSetup printSetup = new XSSFPrintSetup(worksheet);
- assertEquals(9, printSetup.getPageStart());
-
- printSetup.setPageStart((short) 1);
- assertEquals(1, pSetup.getFirstPageNumber());
- }
-
- @Test
- void testSetGetFitWidthHeight() {
- CTWorksheet worksheet = CTWorksheet.Factory.newInstance();
- CTPageSetup pSetup = worksheet.addNewPageSetup();
- pSetup.setFitToWidth(50);
- pSetup.setFitToHeight(99);
- XSSFPrintSetup printSetup = new XSSFPrintSetup(worksheet);
- assertEquals(50, printSetup.getFitWidth());
- assertEquals(99, printSetup.getFitHeight());
-
- printSetup.setFitWidth((short) 66);
- printSetup.setFitHeight((short) 80);
- assertEquals(66, pSetup.getFitToWidth());
- assertEquals(80, pSetup.getFitToHeight());
-
- }
-
- @Test
- void testSetGetLeftToRight() {
- CTWorksheet worksheet = CTWorksheet.Factory.newInstance();
- CTPageSetup pSetup = worksheet.addNewPageSetup();
- pSetup.setPageOrder(STPageOrder.DOWN_THEN_OVER);
- XSSFPrintSetup printSetup = new XSSFPrintSetup(worksheet);
- assertFalse(printSetup.getLeftToRight());
-
- printSetup.setLeftToRight(true);
- assertEquals(PageOrder.OVER_THEN_DOWN.getValue(), pSetup.getPageOrder().intValue());
- }
-
- @Test
- void testSetGetOrientation() {
- CTWorksheet worksheet = CTWorksheet.Factory.newInstance();
- CTPageSetup pSetup = worksheet.addNewPageSetup();
- pSetup.setOrientation(STOrientation.PORTRAIT);
- XSSFPrintSetup printSetup = new XSSFPrintSetup(worksheet);
- assertEquals(PrintOrientation.PORTRAIT, printSetup.getOrientation());
- assertFalse(printSetup.getLandscape());
- assertFalse(printSetup.getNoOrientation());
-
- printSetup.setOrientation(PrintOrientation.LANDSCAPE);
- assertEquals(pSetup.getOrientation().intValue(), printSetup.getOrientation().getValue());
- assertTrue(printSetup.getLandscape());
- assertFalse(printSetup.getNoOrientation());
- }
-
- @Test
- void testSetGetValidSettings() {
- CTWorksheet worksheet = CTWorksheet.Factory.newInstance();
- CTPageSetup pSetup = worksheet.addNewPageSetup();
- pSetup.setUsePrinterDefaults(false);
- XSSFPrintSetup printSetup = new XSSFPrintSetup(worksheet);
- assertFalse(printSetup.getValidSettings());
-
- printSetup.setValidSettings(true);
- assertTrue(pSetup.getUsePrinterDefaults());
- }
-
- @Test
- void testSetGetNoColor() {
- CTWorksheet worksheet = CTWorksheet.Factory.newInstance();
- CTPageSetup pSetup = worksheet.addNewPageSetup();
- pSetup.setBlackAndWhite(false);
- XSSFPrintSetup printSetup = new XSSFPrintSetup(worksheet);
- assertFalse(printSetup.getNoColor());
-
- printSetup.setNoColor(true);
- assertTrue(pSetup.getBlackAndWhite());
- }
-
- @Test
- void testSetGetDraft() {
- CTWorksheet worksheet = CTWorksheet.Factory.newInstance();
- CTPageSetup pSetup = worksheet.addNewPageSetup();
- pSetup.setDraft(false);
- XSSFPrintSetup printSetup = new XSSFPrintSetup(worksheet);
- assertFalse(printSetup.getDraft());
-
- printSetup.setDraft(true);
- assertTrue(pSetup.getDraft());
- }
-
- @Test
- void testSetGetNotes() {
- CTWorksheet worksheet = CTWorksheet.Factory.newInstance();
- CTPageSetup pSetup = worksheet.addNewPageSetup();
- pSetup.setCellComments(STCellComments.NONE);
- XSSFPrintSetup printSetup = new XSSFPrintSetup(worksheet);
- assertFalse(printSetup.getNotes());
-
- printSetup.setNotes(true);
- assertEquals(PrintCellComments.AS_DISPLAYED.getValue(), pSetup.getCellComments().intValue());
- }
-
- @Test
- void testSetGetUsePage() {
- CTWorksheet worksheet = CTWorksheet.Factory.newInstance();
- CTPageSetup pSetup = worksheet.addNewPageSetup();
- pSetup.setUseFirstPageNumber(false);
- XSSFPrintSetup printSetup = new XSSFPrintSetup(worksheet);
- assertFalse(printSetup.getUsePage());
-
- printSetup.setUsePage(true);
- assertTrue(pSetup.getUseFirstPageNumber());
- }
-
- @Test
- void testSetGetHVResolution() {
- CTWorksheet worksheet = CTWorksheet.Factory.newInstance();
- CTPageSetup pSetup = worksheet.addNewPageSetup();
- pSetup.setHorizontalDpi(120);
- pSetup.setVerticalDpi(100);
- XSSFPrintSetup printSetup = new XSSFPrintSetup(worksheet);
- assertEquals(120, printSetup.getHResolution());
- assertEquals(100, printSetup.getVResolution());
-
- printSetup.setHResolution((short) 150);
- printSetup.setVResolution((short) 130);
- assertEquals(150, pSetup.getHorizontalDpi());
- assertEquals(130, pSetup.getVerticalDpi());
- }
-
- @Test
- void testSetGetHeaderFooterMargin() {
- CTWorksheet worksheet = CTWorksheet.Factory.newInstance();
- CTPageMargins pMargins = worksheet.addNewPageMargins();
- pMargins.setHeader(1.5);
- pMargins.setFooter(2);
- XSSFPrintSetup printSetup = new XSSFPrintSetup(worksheet);
- assertEquals(1.5, printSetup.getHeaderMargin(), 0.0);
- assertEquals(2.0, printSetup.getFooterMargin(), 0.0);
-
- printSetup.setHeaderMargin(5);
- printSetup.setFooterMargin(3.5);
- assertEquals(5.0, pMargins.getHeader(), 0.0);
- assertEquals(3.5, pMargins.getFooter(), 0.0);
- }
-
- @Test
- void testSetGetMargins() {
- CTWorksheet worksheet = CTWorksheet.Factory.newInstance();
- CTPageMargins pMargins = worksheet.addNewPageMargins();
- pMargins.setTop(5.3);
- pMargins.setBottom(1.5);
- pMargins.setLeft(2);
- pMargins.setRight(3.2);
- XSSFPrintSetup printSetup = new XSSFPrintSetup(worksheet);
- assertEquals(5.3, printSetup.getTopMargin(), 0.0);
- assertEquals(1.5, printSetup.getBottomMargin(), 0.0);
- assertEquals(2, printSetup.getLeftMargin(), 0.0);
- assertEquals(3.2, printSetup.getRightMargin(), 0.0);
-
- printSetup.setTopMargin(9);
- printSetup.setBottomMargin(6.4);
- printSetup.setLeftMargin(7.8);
- printSetup.setRightMargin(8.1);
- assertEquals(9, pMargins.getTop(), 0.0);
- assertEquals(6.4, pMargins.getBottom(), 0.0);
- assertEquals(7.8, pMargins.getLeft(), 0.0);
- assertEquals(8.1, pMargins.getRight(), 0.0);
- }
-
- @Test
- void testSetGetCopies() {
- CTWorksheet worksheet = CTWorksheet.Factory.newInstance();
- CTPageSetup pSetup = worksheet.addNewPageSetup();
- pSetup.setCopies(9);
- XSSFPrintSetup printSetup = new XSSFPrintSetup(worksheet);
- assertEquals(9, printSetup.getCopies());
-
- printSetup.setCopies((short) 15);
- assertEquals(15, pSetup.getCopies());
- }
-
- @Test
- void testSetSaveRead() throws Exception {
- XSSFWorkbook wb = new XSSFWorkbook();
- XSSFSheet s1 = wb.createSheet();
- assertFalse(s1.getCTWorksheet().isSetPageSetup());
- assertTrue(s1.getCTWorksheet().isSetPageMargins());
-
- XSSFPrintSetup print = s1.getPrintSetup();
- assertTrue(s1.getCTWorksheet().isSetPageSetup());
- assertTrue(s1.getCTWorksheet().isSetPageMargins());
-
- print.setCopies((short)3);
- print.setLandscape(true);
- assertEquals(3, print.getCopies());
- assertTrue(print.getLandscape());
-
- XSSFSheet s2 = wb.createSheet();
- assertFalse(s2.getCTWorksheet().isSetPageSetup());
- assertTrue(s2.getCTWorksheet().isSetPageMargins());
-
- // Round trip and check
- XSSFWorkbook wbBack = XSSFITestDataProvider.instance.writeOutAndReadBack(wb);
-
- s1 = wbBack.getSheetAt(0);
- s2 = wbBack.getSheetAt(1);
-
- assertTrue(s1.getCTWorksheet().isSetPageSetup());
- assertTrue(s1.getCTWorksheet().isSetPageMargins());
- assertFalse(s2.getCTWorksheet().isSetPageSetup());
- assertTrue(s2.getCTWorksheet().isSetPageMargins());
-
- print = s1.getPrintSetup();
- assertEquals(3, print.getCopies());
- assertTrue(print.getLandscape());
-
- wb.close();
- }
-
- /**
- * Open a file with print settings, save and check.
- * Then, change, save, read, check
- */
- @Disabled
- void testRoundTrip() {
- // TODO
- }
-
- @Test
- void testSetLandscapeFalse() {
- XSSFPrintSetup ps = new XSSFPrintSetup(CTWorksheet.Factory.newInstance());
-
- assertFalse(ps.getLandscape());
-
- ps.setLandscape(true);
- assertTrue(ps.getLandscape());
-
- ps.setLandscape(false);
- assertFalse(ps.getLandscape());
- }
-
- @Test
- void testSetLeftToRight() {
- XSSFPrintSetup ps = new XSSFPrintSetup(CTWorksheet.Factory.newInstance());
-
- assertFalse(ps.getLeftToRight());
-
- ps.setLeftToRight(true);
- assertTrue(ps.getLeftToRight());
-
- ps.setLeftToRight(false);
- assertFalse(ps.getLeftToRight());
- }
- }
|