com.aspose.words
Class PageLayoutCallbackArgs

java.lang.Object
    extended by com.aspose.words.PageLayoutCallbackArgs

public class PageLayoutCallbackArgs 
extends java.lang.Object

An argument passed into IPageLayoutCallback.notify(com.aspose.words.PageLayoutCallbackArgs)

Property Getters/Setters Summary
DocumentgetDocument()
           Gets document.
intgetEvent()
           Gets event. The value of the property is PageLayoutEvent integer constant.
intgetPageIndex()
           Gets 0-based index of the page in the document this event relates to. Returns negative value if there is no associated page, or if page was removed during reflow.
 

Property Getters/Setters Detail

getDocument

public Document getDocument()
Gets document.

Example:

Shows how to track layout changes with a layout callback.
@Test
public void pageLayoutCallback() throws Exception {
    Document doc = new Document();
    doc.getBuiltInDocumentProperties().setTitle("My Document");

    DocumentBuilder builder = new DocumentBuilder(doc);
    builder.writeln("Hello world!");

    doc.getLayoutOptions().setCallback(new RenderPageLayoutCallback());
    doc.updatePageLayout();

    doc.save(getArtifactsDir() + "Layout.PageLayoutCallback.pdf");
}

/// <summary>
/// Notifies us when we save the document to a fixed page format
/// and renders a page that we perform a page reflow on to an image in the local file system.
/// </summary>
private static class RenderPageLayoutCallback implements IPageLayoutCallback {
    public void notify(PageLayoutCallbackArgs a) throws Exception {
        switch (a.getEvent()) {
            case PageLayoutEvent.PART_REFLOW_FINISHED:
                notifyPartFinished(a);
                break;
            case PageLayoutEvent.CONVERSION_FINISHED:
                notifyConversionFinished(a);
                break;
        }
    }

    private void notifyPartFinished(PageLayoutCallbackArgs a) throws Exception {
        System.out.println(MessageFormat.format("Part at page {0} reflow.", a.getPageIndex() + 1));
        renderPage(a, a.getPageIndex());
    }

    private void notifyConversionFinished(PageLayoutCallbackArgs a) {
        System.out.println(MessageFormat.format("Document \"{0}\" converted to page format.", a.getDocument().getBuiltInDocumentProperties().getTitle()));
    }

    private void renderPage(PageLayoutCallbackArgs a, int pageIndex) throws Exception {
        ImageSaveOptions saveOptions = new ImageSaveOptions(SaveFormat.PNG);
        {
            saveOptions.setPageSet(new PageSet(pageIndex));
        }

        try (FileOutputStream stream = new FileOutputStream(getArtifactsDir() + MessageFormat.format("PageLayoutCallback.page-{0} {1}.png", pageIndex + 1, ++mNum))) {
            a.getDocument().save(stream, saveOptions);
        }
    }

    private int mNum;
}

getEvent

public int getEvent()
Gets event. The value of the property is PageLayoutEvent integer constant.

Example:

Shows how to track layout changes with a layout callback.
@Test
public void pageLayoutCallback() throws Exception {
    Document doc = new Document();
    doc.getBuiltInDocumentProperties().setTitle("My Document");

    DocumentBuilder builder = new DocumentBuilder(doc);
    builder.writeln("Hello world!");

    doc.getLayoutOptions().setCallback(new RenderPageLayoutCallback());
    doc.updatePageLayout();

    doc.save(getArtifactsDir() + "Layout.PageLayoutCallback.pdf");
}

/// <summary>
/// Notifies us when we save the document to a fixed page format
/// and renders a page that we perform a page reflow on to an image in the local file system.
/// </summary>
private static class RenderPageLayoutCallback implements IPageLayoutCallback {
    public void notify(PageLayoutCallbackArgs a) throws Exception {
        switch (a.getEvent()) {
            case PageLayoutEvent.PART_REFLOW_FINISHED:
                notifyPartFinished(a);
                break;
            case PageLayoutEvent.CONVERSION_FINISHED:
                notifyConversionFinished(a);
                break;
        }
    }

    private void notifyPartFinished(PageLayoutCallbackArgs a) throws Exception {
        System.out.println(MessageFormat.format("Part at page {0} reflow.", a.getPageIndex() + 1));
        renderPage(a, a.getPageIndex());
    }

    private void notifyConversionFinished(PageLayoutCallbackArgs a) {
        System.out.println(MessageFormat.format("Document \"{0}\" converted to page format.", a.getDocument().getBuiltInDocumentProperties().getTitle()));
    }

    private void renderPage(PageLayoutCallbackArgs a, int pageIndex) throws Exception {
        ImageSaveOptions saveOptions = new ImageSaveOptions(SaveFormat.PNG);
        {
            saveOptions.setPageSet(new PageSet(pageIndex));
        }

        try (FileOutputStream stream = new FileOutputStream(getArtifactsDir() + MessageFormat.format("PageLayoutCallback.page-{0} {1}.png", pageIndex + 1, ++mNum))) {
            a.getDocument().save(stream, saveOptions);
        }
    }

    private int mNum;
}

getPageIndex

public int getPageIndex()
Gets 0-based index of the page in the document this event relates to. Returns negative value if there is no associated page, or if page was removed during reflow.

Example:

Shows how to track layout changes with a layout callback.
@Test
public void pageLayoutCallback() throws Exception {
    Document doc = new Document();
    doc.getBuiltInDocumentProperties().setTitle("My Document");

    DocumentBuilder builder = new DocumentBuilder(doc);
    builder.writeln("Hello world!");

    doc.getLayoutOptions().setCallback(new RenderPageLayoutCallback());
    doc.updatePageLayout();

    doc.save(getArtifactsDir() + "Layout.PageLayoutCallback.pdf");
}

/// <summary>
/// Notifies us when we save the document to a fixed page format
/// and renders a page that we perform a page reflow on to an image in the local file system.
/// </summary>
private static class RenderPageLayoutCallback implements IPageLayoutCallback {
    public void notify(PageLayoutCallbackArgs a) throws Exception {
        switch (a.getEvent()) {
            case PageLayoutEvent.PART_REFLOW_FINISHED:
                notifyPartFinished(a);
                break;
            case PageLayoutEvent.CONVERSION_FINISHED:
                notifyConversionFinished(a);
                break;
        }
    }

    private void notifyPartFinished(PageLayoutCallbackArgs a) throws Exception {
        System.out.println(MessageFormat.format("Part at page {0} reflow.", a.getPageIndex() + 1));
        renderPage(a, a.getPageIndex());
    }

    private void notifyConversionFinished(PageLayoutCallbackArgs a) {
        System.out.println(MessageFormat.format("Document \"{0}\" converted to page format.", a.getDocument().getBuiltInDocumentProperties().getTitle()));
    }

    private void renderPage(PageLayoutCallbackArgs a, int pageIndex) throws Exception {
        ImageSaveOptions saveOptions = new ImageSaveOptions(SaveFormat.PNG);
        {
            saveOptions.setPageSet(new PageSet(pageIndex));
        }

        try (FileOutputStream stream = new FileOutputStream(getArtifactsDir() + MessageFormat.format("PageLayoutCallback.page-{0} {1}.png", pageIndex + 1, ++mNum))) {
            a.getDocument().save(stream, saveOptions);
        }
    }

    private int mNum;
}

See Also:
          Aspose.Words Documentation - the home page for the Aspose.Words Product Documentation.
          Aspose.Words Support Forum - our preferred method of support.