public interface IPageLayoutCallback
Example:
@Test
public void pageLayoutCallback() throws Exception {
Document doc = new Document(getMyDir() + "Document.docx");
doc.getLayoutOptions().setCallback(new RenderPageLayoutCallback());
doc.updatePageLayout();
}
private static class RenderPageLayoutCallback implements IPageLayoutCallback {
public void notify(PageLayoutCallbackArgs a) throws Exception {
switch (a.getEvent()) {
case PageLayoutEvent.PART_REFLOW_FINISHED:
notifyPartFinished(a);
break;
}
}
private void notifyPartFinished(PageLayoutCallbackArgs a) throws Exception {
System.out.println("Part at page {a.PageIndex + 1} reflow");
renderPage(a, a.getPageIndex());
}
private void renderPage(PageLayoutCallbackArgs a, int pageIndex) throws Exception {
ImageSaveOptions saveOptions = new ImageSaveOptions(SaveFormat.PNG);
saveOptions.setPageIndex(pageIndex);
saveOptions.setPageCount(1);
OutputStream stream = new FileOutputStream(getArtifactsDir() + MessageFormat.format("PageLayoutCallback.page-{0} {1}.png", pageIndex + 1, ++mNum));
try {
a.getDocument().save(stream, saveOptions);
} finally {
if (stream != null) stream.close();
}
}
private int mNum;
}
Method Summary | ||
---|---|---|
abstract void | notify(PageLayoutCallbackArgs args) | |
This is called to notify of layout build and rendering progress. |
Method Detail |
---|
notify | |
public abstract void notify(PageLayoutCallbackArgs args) throws java.lang.Exception |
args
- An argument of the event.Example:
Shows how to track layout/rendering progress with layout callback.@Test public void pageLayoutCallback() throws Exception { Document doc = new Document(getMyDir() + "Document.docx"); doc.getLayoutOptions().setCallback(new RenderPageLayoutCallback()); doc.updatePageLayout(); } private static class RenderPageLayoutCallback implements IPageLayoutCallback { public void notify(PageLayoutCallbackArgs a) throws Exception { switch (a.getEvent()) { case PageLayoutEvent.PART_REFLOW_FINISHED: notifyPartFinished(a); break; } } private void notifyPartFinished(PageLayoutCallbackArgs a) throws Exception { System.out.println("Part at page {a.PageIndex + 1} reflow"); renderPage(a, a.getPageIndex()); } private void renderPage(PageLayoutCallbackArgs a, int pageIndex) throws Exception { ImageSaveOptions saveOptions = new ImageSaveOptions(SaveFormat.PNG); saveOptions.setPageIndex(pageIndex); saveOptions.setPageCount(1); OutputStream stream = new FileOutputStream(getArtifactsDir() + MessageFormat.format("PageLayoutCallback.page-{0} {1}.png", pageIndex + 1, ++mNum)); try { a.getDocument().save(stream, saveOptions); } finally { if (stream != null) stream.close(); } } private int mNum; }