-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProgram.cs
52 lines (46 loc) · 1.98 KB
/
Program.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
using DevExpress.Office.Services;
using DevExpress.XtraRichEdit;
using DevExpress.XtraRichEdit.API.Native;
using System;
using System.Diagnostics;
using System.Windows.Forms;
namespace RichEditImageMailMerge {
static class Program {
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main() {
using (RichEditDocumentServer wordProcessor = new RichEditDocumentServer())
{
RegisterUriStreamService(wordProcessor);
wordProcessor.LoadDocument(Application.StartupPath + @"MailMergeTemplate.rtf");
wordProcessor.Options.MailMerge.DataSource = NorthwindDataProvider.Categories;
wordProcessor.Options.MailMerge.ViewMergedData = true;
MergeToNewDocument(wordProcessor);
}
}
#region #registerprovider
private static void RegisterUriStreamService(RichEditDocumentServer richEditDocumentServer)
{
IUriStreamService uriStreamService = richEditDocumentServer.GetService<IUriStreamService>();
uriStreamService.RegisterProvider(new ImageStreamProvider(NorthwindDataProvider.Categories, "Picture"));
}
#endregion #registerprovider
#region Mail-merge the document
private static void MergeToNewDocument(RichEditDocumentServer richEditDocumentServer)
{
MailMergeOptions options = richEditDocumentServer.Document.CreateMailMergeOptions();
options.MergeMode = MergeMode.NewSection;
string fileName = System.IO.Directory.GetCurrentDirectory() + @"MailMergeResult.rtf";
richEditDocumentServer.Document.MailMerge(options, fileName, DocumentFormat.Rtf);
var p = new Process();
p.StartInfo = new ProcessStartInfo(fileName)
{
UseShellExecute = true
};
p.Start();
}
#endregion Mail-merge the document
}
}