java.lang.Object
com.aspose.words.PageInfo
public class PageInfo
The page width and height returned by this object represent the "final" size of the page e.g. they are
already rotated to the correct orientation. Example: Example:
Document doc = new Document(getMyDir() + "Rendering.doc");
PageInfo pageInfo = doc.getPageInfo(0);
// Let's say we want the image at 50% zoom.
final float myScale = 0.50f;
// Let's say we want the image at this resolution.
final float myResolution = 200.0f;
Dimension pageSize = pageInfo.getSizeInPixels(myScale, myResolution);
BufferedImage img = new BufferedImage((int) pageSize.getWidth(), (int) pageSize.getHeight(), BufferedImage.TYPE_INT_ARGB);
Graphics2D gr = img.createGraphics();
try {
// You can apply various settings to the Graphics object.
gr.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
// Fill the page background.
gr.setPaint(Color.black);
// Render the page using the zoom.
doc.renderToScale(0, gr, 0, 0, myScale);
} finally {
if (gr != null) {
gr.dispose();
}
}
ImageIO.write(img, "PNG", new File(getArtifactsDir() + "Rendering.RenderToScale.png"));
Document doc = new Document(getMyDir() + "Rendering.doc");
// The first section has 2 pages
// We will assign a different printer paper tray to each one, whose number will match a kind of paper source
// These sources and their Kinds will vary depending on the installed printer driver
// Choose the default printer to be used for printing this document.
PrintService printService = PrintServiceLookup.lookupDefaultPrintService();
Media[] trays = (Media[]) printService.getSupportedAttributeValues(Media.class, null, null);
doc.getFirstSection().getPageSetup().setFirstPageTray(trays[0].getValue());
doc.getFirstSection().getPageSetup().setOtherPagesTray(trays[1].getValue());
System.out.println(MessageFormat.format("Document \"{0}\" contains {1} pages.", doc.getOriginalFileName(), doc.getPageCount()));
float scale = 1.0f;
float dpi = 96f;
for (int i = 0; i < doc.getPageCount(); i++) {
// Each page has a PageInfo object, whose index is the respective page's number
PageInfo pageInfo = doc.getPageInfo(i);
// Print the page's orientation and dimensions
System.out.println(MessageFormat.format("Page {0}:", i++));
System.out.println(MessageFormat.format("\tOrientation:\t{0}", (pageInfo.getLandscape() ? "Landscape" : "Portrait")));
System.out.println(MessageFormat.format("\tPaper size:\t\t{0} ({1:F0}x{2:F0}pt)", pageInfo.getPaperSize(), pageInfo.getWidthInPoints(), pageInfo.getHeightInPoints()));
System.out.println(MessageFormat.format("\tSize in points:\t{0}", pageInfo.getSizeInPoints()));
System.out.println(MessageFormat.format("\tSize in pixels:\t{0} at {1}% scale, {2} dpi", pageInfo.getSizeInPixels(1.0f, 96), scale * 100, dpi));
// Paper source tray information
System.out.println(MessageFormat.format("\tTray:\t{0}", pageInfo.getPaperTray()));
}
| Property Getters/Setters Summary | ||
|---|---|---|
float | getHeightInPoints() | |
| Gets the height of the page in points. | ||
boolean | getLandscape() | |
| Returns true if the page orientation specified in the document for this page is landscape. | ||
int | getPaperSize() | |
| Gets the paper size as enumeration. The value of the property is PaperSize integer constant. | ||
int | getPaperTray() | |
| Gets the paper tray (bin) for this page as specified in the document. The value is implementation (printer) specific. | ||
java.awt.Dimension | getSizeInPoints() | |
| Gets the page size in points. | ||
float | getWidthInPoints() | |
| Gets the width of the page in points. | ||
| Method Summary | ||
|---|---|---|
java.awt.Dimension | getSizeInPixels(float scale, float dpi) | |
| Calculates the page size in pixels for a specified zoom factor and resolution. | ||
java.awt.Dimension | getSizeInPixels(float scale, float horizontalDpi, float verticalDpi) | |
| Calculates the page size in pixels for a specified zoom factor and resolution. | ||
| Property Getters/Setters Detail |
|---|
getHeightInPoints | |
public float getHeightInPoints() | |
Example:
Shows how to print page size and orientation information for every page in a Word document.
Document doc = new Document(getMyDir() + "Rendering.doc");
// The first section has 2 pages
// We will assign a different printer paper tray to each one, whose number will match a kind of paper source
// These sources and their Kinds will vary depending on the installed printer driver
// Choose the default printer to be used for printing this document.
PrintService printService = PrintServiceLookup.lookupDefaultPrintService();
Media[] trays = (Media[]) printService.getSupportedAttributeValues(Media.class, null, null);
doc.getFirstSection().getPageSetup().setFirstPageTray(trays[0].getValue());
doc.getFirstSection().getPageSetup().setOtherPagesTray(trays[1].getValue());
System.out.println(MessageFormat.format("Document \"{0}\" contains {1} pages.", doc.getOriginalFileName(), doc.getPageCount()));
float scale = 1.0f;
float dpi = 96f;
for (int i = 0; i < doc.getPageCount(); i++) {
// Each page has a PageInfo object, whose index is the respective page's number
PageInfo pageInfo = doc.getPageInfo(i);
// Print the page's orientation and dimensions
System.out.println(MessageFormat.format("Page {0}:", i++));
System.out.println(MessageFormat.format("\tOrientation:\t{0}", (pageInfo.getLandscape() ? "Landscape" : "Portrait")));
System.out.println(MessageFormat.format("\tPaper size:\t\t{0} ({1:F0}x{2:F0}pt)", pageInfo.getPaperSize(), pageInfo.getWidthInPoints(), pageInfo.getHeightInPoints()));
System.out.println(MessageFormat.format("\tSize in points:\t{0}", pageInfo.getSizeInPoints()));
System.out.println(MessageFormat.format("\tSize in pixels:\t{0} at {1}% scale, {2} dpi", pageInfo.getSizeInPixels(1.0f, 96), scale * 100, dpi));
// Paper source tray information
System.out.println(MessageFormat.format("\tTray:\t{0}", pageInfo.getPaperTray()));
}Example:
Shows how to implement your own Pageable document to completely customize printing of Aspose.Words documents.
public void customPrint() throws Exception {
Document doc = new Document(getMyDir() + "Rendering.doc");
// Create an instance of our own Pageable document.
MyPrintDocument printDoc = new MyPrintDocument(doc, 2, 6);
// Print with the default printer
PrinterJob pj = PrinterJob.getPrinterJob();
// Set our custom class as the print target.
pj.setPageable(printDoc);
// Print the document to the default printer.
pj.print();
}
/**
* The way to print in Java is to implement a class which implements Printable and Pageable. The latter
* allows for different pages to have different page size and orientation.
* <p>
* This class is an example on how to implement custom printing of an Aspose.Words document.
* It selects an appropriate paper size, orientation when printing.
*/
public class MyPrintDocument implements Pageable, Printable {
public MyPrintDocument(final Document document) throws Exception {
this(document, 1, document.getPageCount());
}
public MyPrintDocument(final Document document, final int fromPage, final int toPage) {
mDocument = document;
mFromPage = fromPage;
mToPage = toPage;
}
/**
* This is called by the Print API to retrieve the number of pages that are expected
* to be printed.
*/
public int getNumberOfPages() {
return (mToPage - mFromPage) + 1;
}
/**
* This is called by the Print API to retrieve the page format of the given page.
*/
public PageFormat getPageFormat(final int pageIndex) {
PageFormat format = new PageFormat();
Paper paper = new Paper();
try {
// Retrieve the page info of the requested page. The pageIndex starts at 0 and is the first page to print.
// We calculate the real page to print based on the start page.
PageInfo info = mDocument.getPageInfo(pageIndex + mFromPage - 1);
// Set the page orientation as landscape or portrait based off the document page.
boolean isLandscape = info.getLandscape();
format.setOrientation(isLandscape ? PageFormat.LANDSCAPE : PageFormat.PORTRAIT);
// Set some margins for the printable area of the page.
paper.setImageableArea(1.0, 1.0, paper.getWidth() - 2, paper.getHeight() - 2);
} catch (Exception e) {
// If there are any errors then use the default paper size.
}
format.setPaper(paper);
return format;
}
/**
* Called for each page to be printed. We must supply an object which will handle the printing of the
* specified page. In our case it's our class will always handle this.
*/
public Printable getPrintable(final int pageIndex) {
return this;
}
/**
* Called when the specified page is to be printed. The page is rendered onto the supplied graphics object.
*/
public int print(final Graphics g, final PageFormat pf, final int pageIndex) {
try {
mDocument.renderToScale(pageIndex + mFromPage - 1, (Graphics2D) g, (int) pf.getImageableX(), (int) pf.getImageableY(), 1.0f);
} catch (Exception e) {
// If there are any problems with rendering the document or when the given index is out of bounds we arrive here.
// We return Printable.NO_SUCH_PAGE is returned so that printing finishes here.
return Printable.NO_SUCH_PAGE;
}
return Printable.PAGE_EXISTS;
}
private Document mDocument;
private int mFromPage;
private int mToPage;
}getLandscape | |
public boolean getLandscape() | |
Example:
Shows how to print page size and orientation information for every page in a Word document.
Document doc = new Document(getMyDir() + "Rendering.doc");
// The first section has 2 pages
// We will assign a different printer paper tray to each one, whose number will match a kind of paper source
// These sources and their Kinds will vary depending on the installed printer driver
// Choose the default printer to be used for printing this document.
PrintService printService = PrintServiceLookup.lookupDefaultPrintService();
Media[] trays = (Media[]) printService.getSupportedAttributeValues(Media.class, null, null);
doc.getFirstSection().getPageSetup().setFirstPageTray(trays[0].getValue());
doc.getFirstSection().getPageSetup().setOtherPagesTray(trays[1].getValue());
System.out.println(MessageFormat.format("Document \"{0}\" contains {1} pages.", doc.getOriginalFileName(), doc.getPageCount()));
float scale = 1.0f;
float dpi = 96f;
for (int i = 0; i < doc.getPageCount(); i++) {
// Each page has a PageInfo object, whose index is the respective page's number
PageInfo pageInfo = doc.getPageInfo(i);
// Print the page's orientation and dimensions
System.out.println(MessageFormat.format("Page {0}:", i++));
System.out.println(MessageFormat.format("\tOrientation:\t{0}", (pageInfo.getLandscape() ? "Landscape" : "Portrait")));
System.out.println(MessageFormat.format("\tPaper size:\t\t{0} ({1:F0}x{2:F0}pt)", pageInfo.getPaperSize(), pageInfo.getWidthInPoints(), pageInfo.getHeightInPoints()));
System.out.println(MessageFormat.format("\tSize in points:\t{0}", pageInfo.getSizeInPoints()));
System.out.println(MessageFormat.format("\tSize in pixels:\t{0} at {1}% scale, {2} dpi", pageInfo.getSizeInPixels(1.0f, 96), scale * 100, dpi));
// Paper source tray information
System.out.println(MessageFormat.format("\tTray:\t{0}", pageInfo.getPaperTray()));
}Example:
Shows how to implement your own Pageable document to completely customize printing of Aspose.Words documents.
public void customPrint() throws Exception {
Document doc = new Document(getMyDir() + "Rendering.doc");
// Create an instance of our own Pageable document.
MyPrintDocument printDoc = new MyPrintDocument(doc, 2, 6);
// Print with the default printer
PrinterJob pj = PrinterJob.getPrinterJob();
// Set our custom class as the print target.
pj.setPageable(printDoc);
// Print the document to the default printer.
pj.print();
}
/**
* The way to print in Java is to implement a class which implements Printable and Pageable. The latter
* allows for different pages to have different page size and orientation.
* <p>
* This class is an example on how to implement custom printing of an Aspose.Words document.
* It selects an appropriate paper size, orientation when printing.
*/
public class MyPrintDocument implements Pageable, Printable {
public MyPrintDocument(final Document document) throws Exception {
this(document, 1, document.getPageCount());
}
public MyPrintDocument(final Document document, final int fromPage, final int toPage) {
mDocument = document;
mFromPage = fromPage;
mToPage = toPage;
}
/**
* This is called by the Print API to retrieve the number of pages that are expected
* to be printed.
*/
public int getNumberOfPages() {
return (mToPage - mFromPage) + 1;
}
/**
* This is called by the Print API to retrieve the page format of the given page.
*/
public PageFormat getPageFormat(final int pageIndex) {
PageFormat format = new PageFormat();
Paper paper = new Paper();
try {
// Retrieve the page info of the requested page. The pageIndex starts at 0 and is the first page to print.
// We calculate the real page to print based on the start page.
PageInfo info = mDocument.getPageInfo(pageIndex + mFromPage - 1);
// Set the page orientation as landscape or portrait based off the document page.
boolean isLandscape = info.getLandscape();
format.setOrientation(isLandscape ? PageFormat.LANDSCAPE : PageFormat.PORTRAIT);
// Set some margins for the printable area of the page.
paper.setImageableArea(1.0, 1.0, paper.getWidth() - 2, paper.getHeight() - 2);
} catch (Exception e) {
// If there are any errors then use the default paper size.
}
format.setPaper(paper);
return format;
}
/**
* Called for each page to be printed. We must supply an object which will handle the printing of the
* specified page. In our case it's our class will always handle this.
*/
public Printable getPrintable(final int pageIndex) {
return this;
}
/**
* Called when the specified page is to be printed. The page is rendered onto the supplied graphics object.
*/
public int print(final Graphics g, final PageFormat pf, final int pageIndex) {
try {
mDocument.renderToScale(pageIndex + mFromPage - 1, (Graphics2D) g, (int) pf.getImageableX(), (int) pf.getImageableY(), 1.0f);
} catch (Exception e) {
// If there are any problems with rendering the document or when the given index is out of bounds we arrive here.
// We return Printable.NO_SUCH_PAGE is returned so that printing finishes here.
return Printable.NO_SUCH_PAGE;
}
return Printable.PAGE_EXISTS;
}
private Document mDocument;
private int mFromPage;
private int mToPage;
}getPaperSize | |
public int getPaperSize() | |
Example:
Shows how to print page size and orientation information for every page in a Word document.
Document doc = new Document(getMyDir() + "Rendering.doc");
// The first section has 2 pages
// We will assign a different printer paper tray to each one, whose number will match a kind of paper source
// These sources and their Kinds will vary depending on the installed printer driver
// Choose the default printer to be used for printing this document.
PrintService printService = PrintServiceLookup.lookupDefaultPrintService();
Media[] trays = (Media[]) printService.getSupportedAttributeValues(Media.class, null, null);
doc.getFirstSection().getPageSetup().setFirstPageTray(trays[0].getValue());
doc.getFirstSection().getPageSetup().setOtherPagesTray(trays[1].getValue());
System.out.println(MessageFormat.format("Document \"{0}\" contains {1} pages.", doc.getOriginalFileName(), doc.getPageCount()));
float scale = 1.0f;
float dpi = 96f;
for (int i = 0; i < doc.getPageCount(); i++) {
// Each page has a PageInfo object, whose index is the respective page's number
PageInfo pageInfo = doc.getPageInfo(i);
// Print the page's orientation and dimensions
System.out.println(MessageFormat.format("Page {0}:", i++));
System.out.println(MessageFormat.format("\tOrientation:\t{0}", (pageInfo.getLandscape() ? "Landscape" : "Portrait")));
System.out.println(MessageFormat.format("\tPaper size:\t\t{0} ({1:F0}x{2:F0}pt)", pageInfo.getPaperSize(), pageInfo.getWidthInPoints(), pageInfo.getHeightInPoints()));
System.out.println(MessageFormat.format("\tSize in points:\t{0}", pageInfo.getSizeInPoints()));
System.out.println(MessageFormat.format("\tSize in pixels:\t{0} at {1}% scale, {2} dpi", pageInfo.getSizeInPixels(1.0f, 96), scale * 100, dpi));
// Paper source tray information
System.out.println(MessageFormat.format("\tTray:\t{0}", pageInfo.getPaperTray()));
}getPaperTray | |
public int getPaperTray() | |
Example:
Shows how to print page size and orientation information for every page in a Word document.
Document doc = new Document(getMyDir() + "Rendering.doc");
// The first section has 2 pages
// We will assign a different printer paper tray to each one, whose number will match a kind of paper source
// These sources and their Kinds will vary depending on the installed printer driver
// Choose the default printer to be used for printing this document.
PrintService printService = PrintServiceLookup.lookupDefaultPrintService();
Media[] trays = (Media[]) printService.getSupportedAttributeValues(Media.class, null, null);
doc.getFirstSection().getPageSetup().setFirstPageTray(trays[0].getValue());
doc.getFirstSection().getPageSetup().setOtherPagesTray(trays[1].getValue());
System.out.println(MessageFormat.format("Document \"{0}\" contains {1} pages.", doc.getOriginalFileName(), doc.getPageCount()));
float scale = 1.0f;
float dpi = 96f;
for (int i = 0; i < doc.getPageCount(); i++) {
// Each page has a PageInfo object, whose index is the respective page's number
PageInfo pageInfo = doc.getPageInfo(i);
// Print the page's orientation and dimensions
System.out.println(MessageFormat.format("Page {0}:", i++));
System.out.println(MessageFormat.format("\tOrientation:\t{0}", (pageInfo.getLandscape() ? "Landscape" : "Portrait")));
System.out.println(MessageFormat.format("\tPaper size:\t\t{0} ({1:F0}x{2:F0}pt)", pageInfo.getPaperSize(), pageInfo.getWidthInPoints(), pageInfo.getHeightInPoints()));
System.out.println(MessageFormat.format("\tSize in points:\t{0}", pageInfo.getSizeInPoints()));
System.out.println(MessageFormat.format("\tSize in pixels:\t{0} at {1}% scale, {2} dpi", pageInfo.getSizeInPixels(1.0f, 96), scale * 100, dpi));
// Paper source tray information
System.out.println(MessageFormat.format("\tTray:\t{0}", pageInfo.getPaperTray()));
}getSizeInPoints | |
public java.awt.Dimension getSizeInPoints() | |
Example:
Shows how to print page size and orientation information for every page in a Word document.
Document doc = new Document(getMyDir() + "Rendering.doc");
// The first section has 2 pages
// We will assign a different printer paper tray to each one, whose number will match a kind of paper source
// These sources and their Kinds will vary depending on the installed printer driver
// Choose the default printer to be used for printing this document.
PrintService printService = PrintServiceLookup.lookupDefaultPrintService();
Media[] trays = (Media[]) printService.getSupportedAttributeValues(Media.class, null, null);
doc.getFirstSection().getPageSetup().setFirstPageTray(trays[0].getValue());
doc.getFirstSection().getPageSetup().setOtherPagesTray(trays[1].getValue());
System.out.println(MessageFormat.format("Document \"{0}\" contains {1} pages.", doc.getOriginalFileName(), doc.getPageCount()));
float scale = 1.0f;
float dpi = 96f;
for (int i = 0; i < doc.getPageCount(); i++) {
// Each page has a PageInfo object, whose index is the respective page's number
PageInfo pageInfo = doc.getPageInfo(i);
// Print the page's orientation and dimensions
System.out.println(MessageFormat.format("Page {0}:", i++));
System.out.println(MessageFormat.format("\tOrientation:\t{0}", (pageInfo.getLandscape() ? "Landscape" : "Portrait")));
System.out.println(MessageFormat.format("\tPaper size:\t\t{0} ({1:F0}x{2:F0}pt)", pageInfo.getPaperSize(), pageInfo.getWidthInPoints(), pageInfo.getHeightInPoints()));
System.out.println(MessageFormat.format("\tSize in points:\t{0}", pageInfo.getSizeInPoints()));
System.out.println(MessageFormat.format("\tSize in pixels:\t{0} at {1}% scale, {2} dpi", pageInfo.getSizeInPixels(1.0f, 96), scale * 100, dpi));
// Paper source tray information
System.out.println(MessageFormat.format("\tTray:\t{0}", pageInfo.getPaperTray()));
}getWidthInPoints | |
public float getWidthInPoints() | |
Example:
Shows how to print page size and orientation information for every page in a Word document.
Document doc = new Document(getMyDir() + "Rendering.doc");
// The first section has 2 pages
// We will assign a different printer paper tray to each one, whose number will match a kind of paper source
// These sources and their Kinds will vary depending on the installed printer driver
// Choose the default printer to be used for printing this document.
PrintService printService = PrintServiceLookup.lookupDefaultPrintService();
Media[] trays = (Media[]) printService.getSupportedAttributeValues(Media.class, null, null);
doc.getFirstSection().getPageSetup().setFirstPageTray(trays[0].getValue());
doc.getFirstSection().getPageSetup().setOtherPagesTray(trays[1].getValue());
System.out.println(MessageFormat.format("Document \"{0}\" contains {1} pages.", doc.getOriginalFileName(), doc.getPageCount()));
float scale = 1.0f;
float dpi = 96f;
for (int i = 0; i < doc.getPageCount(); i++) {
// Each page has a PageInfo object, whose index is the respective page's number
PageInfo pageInfo = doc.getPageInfo(i);
// Print the page's orientation and dimensions
System.out.println(MessageFormat.format("Page {0}:", i++));
System.out.println(MessageFormat.format("\tOrientation:\t{0}", (pageInfo.getLandscape() ? "Landscape" : "Portrait")));
System.out.println(MessageFormat.format("\tPaper size:\t\t{0} ({1:F0}x{2:F0}pt)", pageInfo.getPaperSize(), pageInfo.getWidthInPoints(), pageInfo.getHeightInPoints()));
System.out.println(MessageFormat.format("\tSize in points:\t{0}", pageInfo.getSizeInPoints()));
System.out.println(MessageFormat.format("\tSize in pixels:\t{0} at {1}% scale, {2} dpi", pageInfo.getSizeInPixels(1.0f, 96), scale * 100, dpi));
// Paper source tray information
System.out.println(MessageFormat.format("\tTray:\t{0}", pageInfo.getPaperTray()));
}Example:
Shows how to implement your own Pageable document to completely customize printing of Aspose.Words documents.
public void customPrint() throws Exception {
Document doc = new Document(getMyDir() + "Rendering.doc");
// Create an instance of our own Pageable document.
MyPrintDocument printDoc = new MyPrintDocument(doc, 2, 6);
// Print with the default printer
PrinterJob pj = PrinterJob.getPrinterJob();
// Set our custom class as the print target.
pj.setPageable(printDoc);
// Print the document to the default printer.
pj.print();
}
/**
* The way to print in Java is to implement a class which implements Printable and Pageable. The latter
* allows for different pages to have different page size and orientation.
* <p>
* This class is an example on how to implement custom printing of an Aspose.Words document.
* It selects an appropriate paper size, orientation when printing.
*/
public class MyPrintDocument implements Pageable, Printable {
public MyPrintDocument(final Document document) throws Exception {
this(document, 1, document.getPageCount());
}
public MyPrintDocument(final Document document, final int fromPage, final int toPage) {
mDocument = document;
mFromPage = fromPage;
mToPage = toPage;
}
/**
* This is called by the Print API to retrieve the number of pages that are expected
* to be printed.
*/
public int getNumberOfPages() {
return (mToPage - mFromPage) + 1;
}
/**
* This is called by the Print API to retrieve the page format of the given page.
*/
public PageFormat getPageFormat(final int pageIndex) {
PageFormat format = new PageFormat();
Paper paper = new Paper();
try {
// Retrieve the page info of the requested page. The pageIndex starts at 0 and is the first page to print.
// We calculate the real page to print based on the start page.
PageInfo info = mDocument.getPageInfo(pageIndex + mFromPage - 1);
// Set the page orientation as landscape or portrait based off the document page.
boolean isLandscape = info.getLandscape();
format.setOrientation(isLandscape ? PageFormat.LANDSCAPE : PageFormat.PORTRAIT);
// Set some margins for the printable area of the page.
paper.setImageableArea(1.0, 1.0, paper.getWidth() - 2, paper.getHeight() - 2);
} catch (Exception e) {
// If there are any errors then use the default paper size.
}
format.setPaper(paper);
return format;
}
/**
* Called for each page to be printed. We must supply an object which will handle the printing of the
* specified page. In our case it's our class will always handle this.
*/
public Printable getPrintable(final int pageIndex) {
return this;
}
/**
* Called when the specified page is to be printed. The page is rendered onto the supplied graphics object.
*/
public int print(final Graphics g, final PageFormat pf, final int pageIndex) {
try {
mDocument.renderToScale(pageIndex + mFromPage - 1, (Graphics2D) g, (int) pf.getImageableX(), (int) pf.getImageableY(), 1.0f);
} catch (Exception e) {
// If there are any problems with rendering the document or when the given index is out of bounds we arrive here.
// We return Printable.NO_SUCH_PAGE is returned so that printing finishes here.
return Printable.NO_SUCH_PAGE;
}
return Printable.PAGE_EXISTS;
}
private Document mDocument;
private int mFromPage;
private int mToPage;
}| Method Detail |
|---|
getSizeInPixels | |
public java.awt.Dimension getSizeInPixels(float scale, float dpi) | |
scale - The zoom factor (1.0 is 100%).dpi - The resolution (horizontal and vertical) to convert from points to pixels (dots per inch).Example:
Renders a page of a Word document into a BufferedImage using a specified zoom factor.
Document doc = new Document(getMyDir() + "Rendering.doc");
PageInfo pageInfo = doc.getPageInfo(0);
// Let's say we want the image at 50% zoom.
final float myScale = 0.50f;
// Let's say we want the image at this resolution.
final float myResolution = 200.0f;
Dimension pageSize = pageInfo.getSizeInPixels(myScale, myResolution);
BufferedImage img = new BufferedImage((int) pageSize.getWidth(), (int) pageSize.getHeight(), BufferedImage.TYPE_INT_ARGB);
Graphics2D gr = img.createGraphics();
try {
// You can apply various settings to the Graphics object.
gr.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
// Fill the page background.
gr.setPaint(Color.black);
// Render the page using the zoom.
doc.renderToScale(0, gr, 0, 0, myScale);
} finally {
if (gr != null) {
gr.dispose();
}
}
ImageIO.write(img, "PNG", new File(getArtifactsDir() + "Rendering.RenderToScale.png"));getSizeInPixels | |
public java.awt.Dimension getSizeInPixels(float scale, float horizontalDpi, float verticalDpi) | |
scale - The zoom factor (1.0 is 100%).horizontalDpi - The horizontal resolution to convert from points to pixels (dots per inch).verticalDpi - The vertical resolution to convert from points to pixels (dots per inch).Example:
Shows how to print page size and orientation information for every page in a Word document.
Document doc = new Document(getMyDir() + "Rendering.doc");
// The first section has 2 pages
// We will assign a different printer paper tray to each one, whose number will match a kind of paper source
// These sources and their Kinds will vary depending on the installed printer driver
// Choose the default printer to be used for printing this document.
PrintService printService = PrintServiceLookup.lookupDefaultPrintService();
Media[] trays = (Media[]) printService.getSupportedAttributeValues(Media.class, null, null);
doc.getFirstSection().getPageSetup().setFirstPageTray(trays[0].getValue());
doc.getFirstSection().getPageSetup().setOtherPagesTray(trays[1].getValue());
System.out.println(MessageFormat.format("Document \"{0}\" contains {1} pages.", doc.getOriginalFileName(), doc.getPageCount()));
float scale = 1.0f;
float dpi = 96f;
for (int i = 0; i < doc.getPageCount(); i++) {
// Each page has a PageInfo object, whose index is the respective page's number
PageInfo pageInfo = doc.getPageInfo(i);
// Print the page's orientation and dimensions
System.out.println(MessageFormat.format("Page {0}:", i++));
System.out.println(MessageFormat.format("\tOrientation:\t{0}", (pageInfo.getLandscape() ? "Landscape" : "Portrait")));
System.out.println(MessageFormat.format("\tPaper size:\t\t{0} ({1:F0}x{2:F0}pt)", pageInfo.getPaperSize(), pageInfo.getWidthInPoints(), pageInfo.getHeightInPoints()));
System.out.println(MessageFormat.format("\tSize in points:\t{0}", pageInfo.getSizeInPoints()));
System.out.println(MessageFormat.format("\tSize in pixels:\t{0} at {1}% scale, {2} dpi", pageInfo.getSizeInPixels(1.0f, 96), scale * 100, dpi));
// Paper source tray information
System.out.println(MessageFormat.format("\tTray:\t{0}", pageInfo.getPaperTray()));
}