java.lang.Object
com.aspose.words.ResourceLoadingAction
public class ResourceLoadingAction
- extends java.lang.Object
Utility class containing constants.
Specifies the mode of resource loading.
Example:
Shows how to process inserted resources differently.
public void resourceLoadingCallback() throws Exception {
Document doc = new Document();
// Enable our custom image loading
doc.setResourceLoadingCallback(new ImageNameHandler());
DocumentBuilder builder = new DocumentBuilder(doc);
// We usually insert images as a uri or byte array, but there are many other possibilities with ResourceLoadingCallback
// In this case we are referencing images with simple names and keep the image fetching logic somewhere else
builder.insertImage("Google Logo");
builder.insertImage("Aspose Logo");
builder.insertImage("My Watermark");
// Images belong to Shape objects, which are placed and scaled in the document
Assert.assertEquals(3, doc.getChildNodes(NodeType.SHAPE, true).getCount());
doc.save(getArtifactsDir() + "DocumentBase.ResourceLoadingCallback.docx");
}
private static class ImageNameHandler implements IResourceLoadingCallback {
public int resourceLoading(final ResourceLoadingArgs args) throws URISyntaxException, IOException {
if (args.getResourceType() == ResourceType.IMAGE) {
// builder.InsertImage expects a uri so inputs like "Google Logo" would normally trigger a FileNotFoundException
// We can still process those inputs and find an image any way we like, as long as an image byte array is passed to args.SetData()
if ("Google Logo".equals(args.getOriginalUri())) {
args.setData(DocumentHelper.getBytesFromStream(new URI("http://www.google.com/images/logos/ps_logo2.png").toURL().openStream()));
// We need this return statement any time a resource is loaded in a custom manner
return ResourceLoadingAction.USER_PROVIDED;
}
if ("Aspose Logo".equals(args.getOriginalUri())) {
args.setData(DocumentHelper.getBytesFromStream(getAsposelogoUri().toURL().openStream()));
return ResourceLoadingAction.USER_PROVIDED;
}
// We can find and add an image any way we like, as long as args.SetData() is called with some image byte array as a parameter
if ("My Watermark".equals(args.getOriginalUri())) {
InputStream imageStream = new FileInputStream(getImageDir() + "Transparent background logo.png");
args.setData(DocumentHelper.getBytesFromStream(imageStream));
return ResourceLoadingAction.USER_PROVIDED;
}
}
// All other resources such as documents, CSS stylesheets and images passed as uris are handled as they were normally
return ResourceLoadingAction.DEFAULT;
}
}
Field Summary |
static final int | DEFAULT = 0 | |
Aspose.Words will load this resource as usual.
|
static final int | SKIP = 1 | |
Aspose.Words will skip loading of this resource.
Only link without data will be stored for an image.
Css style sheet will be ignored.
|
static final int | USER_PROVIDED = 2 | |
Aspose.Words will use byte array provided by user in ResourceLoadingArgs.setData(byte[]) as resource data.
|
DEFAULT = 0 | |
public static final int DEFAULT |
-
Aspose.Words will load this resource as usual.
SKIP = 1 | |
public static final int SKIP |
-
Aspose.Words will skip loading of this resource.
Only link without data will be stored for an image.
Css style sheet will be ignored.
USER_PROVIDED = 2 | |
public static final int USER_PROVIDED |
-
Aspose.Words will use byte array provided by user in ResourceLoadingArgs.setData(byte[]) as resource data.
See Also:
Aspose.Words Documentation - the home page for the Aspose.Words Product Documentation.
Aspose.Words Support Forum - our preferred method of support.