public interface IPageLayoutCallback
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; }
Method Summary | ||
---|---|---|
abstract void | notify(PageLayoutCallbackArgs args) | |
This is called to notify of layout build and rendering progress.
|
public abstract void notify(PageLayoutCallbackArgs args) throws java.lang.Exception
args
- An argument of the event.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; }