com.aspose.words

Class ResourceLoadingAction

  • 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 customize the process of loading external resources into a document.
public void resourceLoadingCallback() throws Exception {
    Document doc = new Document();
    doc.setResourceLoadingCallback(new ImageNameHandler());

    DocumentBuilder builder = new DocumentBuilder(doc);

    // Images usually are inserted using a URI, or a byte array.
    // Every instance of a resource load will call our callback's ResourceLoading method.
    builder.insertImage("Google logo");
    builder.insertImage("Aspose logo");
    builder.insertImage("Watermark");

    Assert.assertEquals(3, doc.getChildNodes(NodeType.SHAPE, true).getCount());

    doc.save(getArtifactsDir() + "DocumentBase.ResourceLoadingCallback.docx");
}

/// <summary>
/// Allows us to load images into a document using predefined shorthands, as opposed to URIs.
/// This will separate image loading logic from the rest of the document construction.
/// </summary>
private static class ImageNameHandler implements IResourceLoadingCallback {
    public int resourceLoading(final ResourceLoadingArgs args) throws URISyntaxException, IOException {
        if (args.getResourceType() == ResourceType.IMAGE) {
            // If this callback encounters one of the image shorthands while loading an image,
            // it will apply unique logic for each defined shorthand instead of treating it as a URI.
            if ("Google logo".equals(args.getOriginalUri())) {
                args.setData(DocumentHelper.getBytesFromStream(new URI("http://www.google.com/images/logos/ps_logo2.png").toURL().openStream()));

                return ResourceLoadingAction.USER_PROVIDED;
            }

            if ("Aspose logo".equals(args.getOriginalUri())) {
                args.setData(DocumentHelper.getBytesFromStream(getAsposelogoUri().toURL().openStream()));

                return ResourceLoadingAction.USER_PROVIDED;
            }

            if ("Watermark".equals(args.getOriginalUri())) {
                InputStream imageStream = new FileInputStream(getImageDir() + "Transparent background logo.png");
                args.setData(DocumentHelper.getBytesFromStream(imageStream));

                return ResourceLoadingAction.USER_PROVIDED;
            }
        }

        return ResourceLoadingAction.DEFAULT;
    }
}

Field Summary
static final intDEFAULT = 0
Aspose.Words will load this resource as usual.
static final intSKIP = 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 for HTML format.
static final intUSER_PROVIDED = 2
Aspose.Words will use byte array provided by user in ResourceLoadingArgs.setData(byte[]) as resource data.
 

    • Field Detail

      • 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 for HTML format.