public interface IDocumentPartSavingCallback
Example:
Shows how to split a document into parts and save them.Document doc = new Document(getMyDir() + "Rendering.docx"); String outFileName = "SavingCallback.DocumentPartsFileNames.html"; // Create an "HtmlFixedSaveOptions" object, which we can pass to the document's "Save" method // to modify how we convert the document to HTML. HtmlSaveOptions options = new HtmlSaveOptions(); // If we save the document normally, there will be one output HTML // document with all the source document's contents. // Set the "DocumentSplitCriteria" property to "DocumentSplitCriteria.SectionBreak" to // save our document to multiple HTML files: one for each section. options.setDocumentSplitCriteria(DocumentSplitCriteria.SECTION_BREAK); // Assign a custom callback to the "DocumentPartSavingCallback" property to alter the document part saving logic. options.setDocumentPartSavingCallback(new SavedDocumentPartRename(outFileName, options.getDocumentSplitCriteria())); // If we convert a document that contains images into html, we will end up with one html file which links to several images. // Each image will be in the form of a file in the local file system. // There is also a callback that can customize the name and file system location of each image. options.setImageSavingCallback(new SavedImageRename(outFileName)); doc.save(getArtifactsDir() + outFileName, options); } /// <summary> /// Sets custom filenames for output documents that the saving operation splits a document into. /// </summary> private static class SavedDocumentPartRename implements IDocumentPartSavingCallback { public SavedDocumentPartRename(String outFileName, int documentSplitCriteria) { mOutFileName = outFileName; mDocumentSplitCriteria = documentSplitCriteria; } public void documentPartSaving(DocumentPartSavingArgs args) throws Exception { // We can access the entire source document via the "Document" property. Assert.assertTrue(args.getDocument().getOriginalFileName().endsWith("Rendering.docx")); String partType = ""; switch (mDocumentSplitCriteria) { case DocumentSplitCriteria.PAGE_BREAK: partType = "Page"; break; case DocumentSplitCriteria.COLUMN_BREAK: partType = "Column"; break; case DocumentSplitCriteria.SECTION_BREAK: partType = "Section"; break; case DocumentSplitCriteria.HEADING_PARAGRAPH: partType = "Paragraph from heading"; break; } String partFileName = MessageFormat.format("{0} part {1}, of type {2}.{3}", mOutFileName, ++mCount, partType, FilenameUtils.getExtension(args.getDocumentPartFileName())); // Below are two ways of specifying where Aspose.Words will save each part of the document. // 1 - Set a filename for the output part file: args.setDocumentPartFileName(partFileName); // 2 - Create a custom stream for the output part file: try (FileOutputStream outputStream = new FileOutputStream(getArtifactsDir() + partFileName)) { args.setDocumentPartStream(outputStream); } Assert.assertNotNull(args.getDocumentPartStream()); Assert.assertFalse(args.getKeepDocumentPartStreamOpen()); } private int mCount; private final String mOutFileName; private final int mDocumentSplitCriteria; } /// <summary> /// Sets custom filenames for image files that an HTML conversion creates. /// </summary> public static class SavedImageRename implements IImageSavingCallback { public SavedImageRename(String outFileName) { mOutFileName = outFileName; } public void imageSaving(ImageSavingArgs args) throws Exception { String imageFileName = MessageFormat.format("{0} shape {1}, of type {2}.{3}", mOutFileName, ++mCount, args.getCurrentShape().getShapeType(), FilenameUtils.getExtension(args.getImageFileName())); // Below are two ways of specifying where Aspose.Words will save each part of the document. // 1 - Set a filename for the output image file: args.setImageFileName(imageFileName); // 2 - Create a custom stream for the output image file: args.setImageStream(new FileOutputStream(getArtifactsDir() + imageFileName)); Assert.assertNotNull(args.getImageStream()); Assert.assertTrue(args.isImageAvailable()); Assert.assertFalse(args.getKeepImageStreamOpen()); } private int mCount; private final String mOutFileName; }
Method Summary | ||
---|---|---|
abstract void | documentPartSaving(DocumentPartSavingArgs args) | |
Called when Aspose.Words is about to save a document part.
|
public abstract void documentPartSaving(DocumentPartSavingArgs args) throws java.lang.Exception
Example:
Shows how to split a document into parts and save them.Document doc = new Document(getMyDir() + "Rendering.docx"); String outFileName = "SavingCallback.DocumentPartsFileNames.html"; // Create an "HtmlFixedSaveOptions" object, which we can pass to the document's "Save" method // to modify how we convert the document to HTML. HtmlSaveOptions options = new HtmlSaveOptions(); // If we save the document normally, there will be one output HTML // document with all the source document's contents. // Set the "DocumentSplitCriteria" property to "DocumentSplitCriteria.SectionBreak" to // save our document to multiple HTML files: one for each section. options.setDocumentSplitCriteria(DocumentSplitCriteria.SECTION_BREAK); // Assign a custom callback to the "DocumentPartSavingCallback" property to alter the document part saving logic. options.setDocumentPartSavingCallback(new SavedDocumentPartRename(outFileName, options.getDocumentSplitCriteria())); // If we convert a document that contains images into html, we will end up with one html file which links to several images. // Each image will be in the form of a file in the local file system. // There is also a callback that can customize the name and file system location of each image. options.setImageSavingCallback(new SavedImageRename(outFileName)); doc.save(getArtifactsDir() + outFileName, options); } /// <summary> /// Sets custom filenames for output documents that the saving operation splits a document into. /// </summary> private static class SavedDocumentPartRename implements IDocumentPartSavingCallback { public SavedDocumentPartRename(String outFileName, int documentSplitCriteria) { mOutFileName = outFileName; mDocumentSplitCriteria = documentSplitCriteria; } public void documentPartSaving(DocumentPartSavingArgs args) throws Exception { // We can access the entire source document via the "Document" property. Assert.assertTrue(args.getDocument().getOriginalFileName().endsWith("Rendering.docx")); String partType = ""; switch (mDocumentSplitCriteria) { case DocumentSplitCriteria.PAGE_BREAK: partType = "Page"; break; case DocumentSplitCriteria.COLUMN_BREAK: partType = "Column"; break; case DocumentSplitCriteria.SECTION_BREAK: partType = "Section"; break; case DocumentSplitCriteria.HEADING_PARAGRAPH: partType = "Paragraph from heading"; break; } String partFileName = MessageFormat.format("{0} part {1}, of type {2}.{3}", mOutFileName, ++mCount, partType, FilenameUtils.getExtension(args.getDocumentPartFileName())); // Below are two ways of specifying where Aspose.Words will save each part of the document. // 1 - Set a filename for the output part file: args.setDocumentPartFileName(partFileName); // 2 - Create a custom stream for the output part file: try (FileOutputStream outputStream = new FileOutputStream(getArtifactsDir() + partFileName)) { args.setDocumentPartStream(outputStream); } Assert.assertNotNull(args.getDocumentPartStream()); Assert.assertFalse(args.getKeepDocumentPartStreamOpen()); } private int mCount; private final String mOutFileName; private final int mDocumentSplitCriteria; } /// <summary> /// Sets custom filenames for image files that an HTML conversion creates. /// </summary> public static class SavedImageRename implements IImageSavingCallback { public SavedImageRename(String outFileName) { mOutFileName = outFileName; } public void imageSaving(ImageSavingArgs args) throws Exception { String imageFileName = MessageFormat.format("{0} shape {1}, of type {2}.{3}", mOutFileName, ++mCount, args.getCurrentShape().getShapeType(), FilenameUtils.getExtension(args.getImageFileName())); // Below are two ways of specifying where Aspose.Words will save each part of the document. // 1 - Set a filename for the output image file: args.setImageFileName(imageFileName); // 2 - Create a custom stream for the output image file: args.setImageStream(new FileOutputStream(getArtifactsDir() + imageFileName)); Assert.assertNotNull(args.getImageStream()); Assert.assertTrue(args.isImageAvailable()); Assert.assertFalse(args.getKeepImageStreamOpen()); } private int mCount; private final String mOutFileName; }