ResourceLoadingAction
内容
[
隐藏
]ResourceLoadingAction enumeration
指定资源加载模式。
要了解更多信息,请访问指定加载选项文档文章。
public enum ResourceLoadingAction
价值观
姓名 | 价值 | 描述 |
---|---|---|
Default | 0 | Aspose.Words 将照常加载此资源。 |
Skip | 1 | Aspose.Words 将跳过此资源的加载。 图像只会存储没有数据的链接,HTML 格式将忽略 CSS 样式表。 |
UserProvided | 2 | Aspose.Words 将使用用户提供的字节数组SetData 作为资源数据. |
例子
演示如何自定义将外部资源加载到文档中的过程。
public void ResourceLoadingCallback()
{
Document doc = new Document();
doc.ResourceLoadingCallback = new ImageNameHandler();
DocumentBuilder builder = new DocumentBuilder(doc);
// 图像通常使用 URI 或字节数组插入。
// 资源加载的每个实例都会调用回调的 ResourceLoading 方法。
builder.InsertImage("Google logo");
builder.InsertImage("Aspose logo");
builder.InsertImage("Watermark");
Assert.AreEqual(3, doc.GetChildNodes(NodeType.Shape, true).Count);
doc.Save(ArtifactsDir + "DocumentBase.ResourceLoadingCallback.docx");
}
/// <summary>
/// 允许我们使用预定义的速记方式(而不是 URI)将图像加载到文档中。
/// 这会将图像加载逻辑与文档构造的其余部分分开。
/// </summary>
private class ImageNameHandler : IResourceLoadingCallback
{
public ResourceLoadingAction ResourceLoading(ResourceLoadingArgs args)
{
// 如果此回调在加载图像时遇到图像简写之一,
// 它将为每个定义的简写应用独特的逻辑,而不是将其视为 URI。
if (args.ResourceType == ResourceType.Image)
switch (args.OriginalUri)
{
case "Google logo":
using (WebClient webClient = new WebClient())
{
args.SetData(webClient.DownloadData("http://www.google.com/images/logos/ps_logo2.png"));
}
return ResourceLoadingAction.UserProvided;
case "Aspose logo":
args.SetData(File.ReadAllBytes(ImageDir + "Logo.jpg"));
return ResourceLoadingAction.UserProvided;
case "Watermark":
args.SetData(File.ReadAllBytes(ImageDir + "Transparent background logo.png"));
return ResourceLoadingAction.UserProvided;
}
return ResourceLoadingAction.Default;
}
}
也可以看看
- 命名空间 Aspose.Words.Loading
- 部件 Aspose.Words