Redactor
内容
[
隐藏
]
Redactor class
表示控制文档编辑过程的主类,允许打开、编辑和保存文档。
public sealed class Redactor : IDisposable, IPreviewable
构造函数
姓名 | 描述 |
---|---|
Redactor(Stream) | 初始化一个新实例Redactor 使用 stream. 的类 |
Redactor(string) | 初始化一个新实例Redactor 使用文件路径的类. |
Redactor(Stream, LoadOptions) | 初始化一个新实例Redactor 使用 stream. 的密码保护文档的类 |
Redactor(string, LoadOptions) | 初始化一个新实例Redactor 使用其路径. 的受密码保护文档的类 |
Redactor(Stream, LoadOptions, RedactorSettings) | 初始化一个新实例Redactor 使用流和设置的密码保护文档的类。 |
Redactor(string, LoadOptions, RedactorSettings) | 初始化一个新实例Redactor 使用其路径和设置的受密码保护文档的类。 |
方法
姓名 | 描述 |
---|---|
Apply(Redaction) | 对文档应用密文。 |
Apply(RedactionPolicy) | 将编辑策略应用于文档。 |
Apply(Redaction[]) | 对文档应用一组修订。 |
Dispose() | 释放资源。 |
GeneratePreview(PreviewOptions) | 以给定的图像格式生成特定页面的预览图像。 |
GetDocumentInfo() | 获取有关文档的一般信息 - 大小、页数等。 |
Save() | 使用以下选项将文档保存到文件:AddSuffix = true, RasterizeToPDF = true. |
Save(SaveOptions) | 将文档保存到文件中。 |
Save(Stream, RasterizationOptions) | 将文档保存到流中,包括自定义位置。 |
评论
了解更多
例子
以下示例演示了对文档应用单个密文。
以下示例演示了对文档应用密文列表。
以下示例演示如何将编辑策略应用于给定入站文件夹中的所有文件,并保存到出站文件夹之一 - 用于成功更新的文件和失败的文件。
下面的示例演示如何使用 LoadOptions 打开受密码保护的文件。
以下示例演示如何使用 SaveOptions 保存文档。
using (Redactor redactor = new Redactor(@"D:\\test.docx"))
{
RedactorChangeLog result = redactor.Apply(new RegexRedaction(LookupStrings.SSNRegexPattern, new ReplacementOptions("[ssn]")));
if (result.Status != RedactionStatus.Failed)
{
redactor.Save();
};
}
using (Redactor redactor = new Redactor(@"D:\\test.docx"))
{
var redactionList = new Redaction[]
{
new ExactPhraseRedaction(LookupStrings.ClientName, new ReplacementOptions("[client]")),
new ExactPhraseRedaction(LookupStrings.ClientAddress, new ReplacementOptions(System.Drawing.Color.Red)),
new RegexRedaction(LookupStrings.SSNRegexPattern, new ReplacementOptions("[ssn]")),
new RegexRedaction(LookupStrings.BankCardRegexPattern, new ReplacementOptions(System.Drawing.Color.Blue)),
// ... 其他编辑
new DeleteAnnotationRedaction("(?im:(use|show|describe))"),
new EraseMetadataRedaction(MetadataFilter.Author),
new MetadataSearchRedaction(LookupStrings.CompanyName, "--company--")
};
RedactorChangeLog result = redactor.Apply(redactionList);
// false,如果至少一个编辑失败
if (result.Status != RedactionStatus.Failed)
{
redactor.Save();
};
}
RedactionPolicy policy = RedactionPolicy.Load("RedactionPolicy.xml");
foreach (var fileEntry in Directory.GetFileNames("C:\\Inbound"))
{
using (Redactor redactor = new Redactor(Path.Combine("C:\\Inbound\\", fileEntry)))
{
RedactorChangeLog result = redactor.Apply(policy);
String resultFolder = result.Status != RedactionStatus.Failed ? "C:\\Outbound\\Done\\" : "C:\\Outbound\\Failed\\";
using (Stream fileStream = File.Open(Path.Combine(resultFolder, fileEntry), FileMode.Open, FileAccess.ReadWrite))
{
redactor.Save(fileStream, new RasterizationOptions() { Enabled = false });
}
}
}
LoadOptions loadOptions = new LoadOptions("mypassword");
using (Redactor redactor = new Redactor(@"C:\sample.pdf", loadOptions))
{
// 这里我们可以使用文档实例来执行编辑
}
using (Redactor redactor = new Redactor(@"C:\sample.pdf"))
{
// 文档编辑在这里
// ...
// 使用默认选项保存文档(将页面转换为图像,另存为 PDF)
redactor.Save();
// 以原始格式保存文档覆盖原始文件
redactor.Save(new SaveOptions() { AddSuffix = false, RasterizeToPDF = false });
// 将文档以原始格式保存到“*_Redacted.*”文件
redactor.Save(new SaveOptions() { AddSuffix = true, RasterizeToPDF = false });
// 将文档保存到其文件名中的“*_AnyText.*”(例如时间戳而不是“AnyText”)而不进行光栅化
redactor.Save(new SaveOptions(false, "AnyText"));
}
也可以看看
- interface IPreviewable
- 命名空间 GroupDocs.Redaction
- 部件 GroupDocs.Redaction