blob: 9989db206e5c16fb505922ba7e7931c3224c8799 [file] [log] [blame]
/*
* 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.netbeans.spi.print;
import java.util.Date;
/**
* Print provider is the collection of the pages
* to be printed, where collection is the 2D matrix.
*
* @author Vladimir Yaroslavskiy
* @version 2006.04.24
*/
public interface PrintProvider {
/**
* Returns print pages being shown and printed.
* The pages will be shown in the Print Preview dialog
* as 2D matrix, e.g. page <code>pages[1][2]</code> will
* be shown in second row and third column in the dialog.
*
* @param width specifies the width of pages in pixels.
* @param height specifies the height of pages in pixels.
* @param zoom specifies the scale of pages.
* The zoom can take positive double value:
* <code>0.2</code> means <code>20%</code>,
* <code>1.0</code> - <code>100%</code>,
* <code>3.1415</code> - <code>314.5%</code> etc.
*
* @return pages being printed for the given width, height and zoom
*/
PrintPage[][] getPages(int width, int height, double zoom);
/**
* Indicates the name of the document being printed which
* will be shown in the header/footer. By default, the
* name is shown in the left part of the header.
* @return name of the document which can be used in header/footer
*/
String getName();
/**
* Indicates the time at which the user last made a modification to
* the document, diagram, etc. being printed which might affect its
* printed appearance. The document might not have been saved since then.
* @return time at which the printable document was last changed
*/
Date lastModified();
}