View | Details | Raw Unified | Return to bug 60985
Collapse All | Expand All

(-)src/java/org/apache/poi/hssf/record/aggregates/PageSettingsBlock.java (+12 lines)
Lines 401-406 Link Here
401
    }
401
    }
402
402
403
    /**
403
    /**
404
     * Returns the PrintSetupRecord, adding one if missing.
405
     * @return PrintSetupRecord for the sheet. (never {@code null})
406
     */
407
    public PrintSetupRecord getOrCreatePrintSetup()
408
    {
409
        if (_printSetup == null) {
410
            _printSetup = createPrintSetup();
411
        }
412
        return _printSetup;
413
    }
414
415
    /**
404
     * Sets the PrintSetupRecord.
416
     * Sets the PrintSetupRecord.
405
     * @param newPrintSetup The new PrintSetupRecord for the sheet.
417
     * @param newPrintSetup The new PrintSetupRecord for the sheet.
406
     */
418
     */
(-)src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java (-3 / +6 lines)
Lines 1237-1248 Link Here
1237
1237
1238
    /**
1238
    /**
1239
     * Gets the print setup object.
1239
     * Gets the print setup object.
1240
     * Adds a Print Setup Record to the workbook if one is not present
1240
     *
1241
     *
1241
     * @return The user model for the print setup object.
1242
     * @return The user model for the print setup object.
1242
     */
1243
     */
1243
    @Override
1244
    @Override
1244
    public HSSFPrintSetup getPrintSetup() {
1245
    public HSSFPrintSetup getPrintSetup() {
1245
        return new HSSFPrintSetup(_sheet.getPageSettings().getPrintSetup());
1246
        return new HSSFPrintSetup(_sheet.getPageSettings().getOrCreatePrintSetup());
1246
    }
1247
    }
1247
1248
1248
    @Override
1249
    @Override
Lines 1300-1305 Link Here
1300
    @Override
1301
    @Override
1301
    public double getMargin(short margin) {
1302
    public double getMargin(short margin) {
1302
        switch (margin) {
1303
        switch (margin) {
1304
            // FIXME: should this getter return a default margin, -1, or raise an NPE if there is no PrintSetupRecord?
1305
            // should it create a print setup record if missing, and if so, return default margin or -1?
1303
            case FooterMargin:
1306
            case FooterMargin:
1304
                return _sheet.getPageSettings().getPrintSetup().getFooterMargin();
1307
                return _sheet.getPageSettings().getPrintSetup().getFooterMargin();
1305
            case HeaderMargin:
1308
            case HeaderMargin:
Lines 1319-1328 Link Here
1319
    public void setMargin(short margin, double size) {
1322
    public void setMargin(short margin, double size) {
1320
        switch (margin) {
1323
        switch (margin) {
1321
            case FooterMargin:
1324
            case FooterMargin:
1322
                _sheet.getPageSettings().getPrintSetup().setFooterMargin(size);
1325
                _sheet.getPageSettings().getOrCreatePrintSetup().setFooterMargin(size);
1323
                break;
1326
                break;
1324
            case HeaderMargin:
1327
            case HeaderMargin:
1325
                _sheet.getPageSettings().getPrintSetup().setHeaderMargin(size);
1328
                _sheet.getPageSettings().getOrCreatePrintSetup().setHeaderMargin(size);
1326
                break;
1329
                break;
1327
            default:
1330
            default:
1328
                _sheet.getPageSettings().setMargin(margin, size);
1331
                _sheet.getPageSettings().setMargin(margin, size);

Return to bug 60985