java.lang.Objectcom.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");
System.out.println(MessageFormat.format("Document \"{0}\" contains {1} pages.", doc.getOriginalFileName(), doc.getPageCount()));
for (int i = 0; i < doc.getPageCount(); i++)
{
PageInfo pageInfo = doc.getPageInfo(i);
System.out.println(MessageFormat.format(
"Page {0}. PaperSize:{1} ({2}x{3}pt), Orientation:{4}, PaperTray:{5}",
i + 1,
pageInfo.getPaperSize(),
pageInfo.getWidthInPoints(),
pageInfo.getHeightInPoints(),
pageInfo.getLandscape() ? "Landscape" : "Portrait",
pageInfo.getPaperTray()));
}
Document doc = new Document(getMyDir() + "Rendering.doc");
PageInfo pageInfo = doc.getPageInfo(0);
// Let's say we want the image at 50% zoom.
float MY_SCALE = 0.50f;
Dimension pageSize = pageInfo.getSizeInPixels(MY_SCALE, 96.0f);
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, MY_SCALE);
}
finally { if (gr != null) gr.dispose(); }
ImageIO.write(img, "PNG", new File(getMyDir() + "Rendering.RenderToScale Out.png"));
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. |
Property Getters/Setters Detail |
---|
getHeightInPoints | |
public float getHeightInPoints() |
Example:
Retrieves page size and orientation information for every page in a Word document.Document doc = new Document(getMyDir() + "Rendering.doc"); System.out.println(MessageFormat.format("Document \"{0}\" contains {1} pages.", doc.getOriginalFileName(), doc.getPageCount())); for (int i = 0; i < doc.getPageCount(); i++) { PageInfo pageInfo = doc.getPageInfo(i); System.out.println(MessageFormat.format( "Page {0}. PaperSize:{1} ({2}x{3}pt), Orientation:{4}, PaperTray:{5}", i + 1, pageInfo.getPaperSize(), pageInfo.getWidthInPoints(), pageInfo.getHeightInPoints(), pageInfo.getLandscape() ? "Landscape" : "Portrait", 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. * * 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(Document document) throws Exception { this(document, 1, document.getPageCount()); } public MyPrintDocument(Document document, int fromPage, 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(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(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(Graphics g, PageFormat pf, 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:
Retrieves page size and orientation information for every page in a Word document.Document doc = new Document(getMyDir() + "Rendering.doc"); System.out.println(MessageFormat.format("Document \"{0}\" contains {1} pages.", doc.getOriginalFileName(), doc.getPageCount())); for (int i = 0; i < doc.getPageCount(); i++) { PageInfo pageInfo = doc.getPageInfo(i); System.out.println(MessageFormat.format( "Page {0}. PaperSize:{1} ({2}x{3}pt), Orientation:{4}, PaperTray:{5}", i + 1, pageInfo.getPaperSize(), pageInfo.getWidthInPoints(), pageInfo.getHeightInPoints(), pageInfo.getLandscape() ? "Landscape" : "Portrait", 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. * * 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(Document document) throws Exception { this(document, 1, document.getPageCount()); } public MyPrintDocument(Document document, int fromPage, 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(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(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(Graphics g, PageFormat pf, 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:
Retrieves page size and orientation information for every page in a Word document.Document doc = new Document(getMyDir() + "Rendering.doc"); System.out.println(MessageFormat.format("Document \"{0}\" contains {1} pages.", doc.getOriginalFileName(), doc.getPageCount())); for (int i = 0; i < doc.getPageCount(); i++) { PageInfo pageInfo = doc.getPageInfo(i); System.out.println(MessageFormat.format( "Page {0}. PaperSize:{1} ({2}x{3}pt), Orientation:{4}, PaperTray:{5}", i + 1, pageInfo.getPaperSize(), pageInfo.getWidthInPoints(), pageInfo.getHeightInPoints(), pageInfo.getLandscape() ? "Landscape" : "Portrait", pageInfo.getPaperTray())); }
getPaperTray | |
public int getPaperTray() |
Example:
Retrieves page size and orientation information for every page in a Word document.Document doc = new Document(getMyDir() + "Rendering.doc"); System.out.println(MessageFormat.format("Document \"{0}\" contains {1} pages.", doc.getOriginalFileName(), doc.getPageCount())); for (int i = 0; i < doc.getPageCount(); i++) { PageInfo pageInfo = doc.getPageInfo(i); System.out.println(MessageFormat.format( "Page {0}. PaperSize:{1} ({2}x{3}pt), Orientation:{4}, PaperTray:{5}", i + 1, pageInfo.getPaperSize(), pageInfo.getWidthInPoints(), pageInfo.getHeightInPoints(), pageInfo.getLandscape() ? "Landscape" : "Portrait", pageInfo.getPaperTray())); }
getSizeInPoints | |
public java.awt.Dimension getSizeInPoints() |
getWidthInPoints | |
public float getWidthInPoints() |
Example:
Retrieves page size and orientation information for every page in a Word document.Document doc = new Document(getMyDir() + "Rendering.doc"); System.out.println(MessageFormat.format("Document \"{0}\" contains {1} pages.", doc.getOriginalFileName(), doc.getPageCount())); for (int i = 0; i < doc.getPageCount(); i++) { PageInfo pageInfo = doc.getPageInfo(i); System.out.println(MessageFormat.format( "Page {0}. PaperSize:{1} ({2}x{3}pt), Orientation:{4}, PaperTray:{5}", i + 1, pageInfo.getPaperSize(), pageInfo.getWidthInPoints(), pageInfo.getHeightInPoints(), pageInfo.getLandscape() ? "Landscape" : "Portrait", 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. * * 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(Document document) throws Exception { this(document, 1, document.getPageCount()); } public MyPrintDocument(Document document, int fromPage, 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(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(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(Graphics g, PageFormat pf, 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 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. float MY_SCALE = 0.50f; Dimension pageSize = pageInfo.getSizeInPixels(MY_SCALE, 96.0f); 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, MY_SCALE); } finally { if (gr != null) gr.dispose(); } ImageIO.write(img, "PNG", new File(getMyDir() + "Rendering.RenderToScale Out.png"));