/
Export.cs
121 lines (107 loc) · 5.72 KB
/
Export.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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
using DevExpress.XtraRichEdit.API.Native;
using System;
using System.IO;
using System.Windows.Forms;
using DevExpress.XtraRichEdit;
namespace RichEditAPISample.CodeExamples
{
class ExportActions
{
static void SaveImageFromRange(Document document)
{
#region #SaveImageFromRange
document.LoadDocument("Documents//Grimm.docx", DocumentFormat.OpenXml);
DocumentRange docRange = document.Paragraphs[2].Range;
ReadOnlyDocumentImageCollection docImageColl = document.Images.Get(docRange);
if (docImageColl.Count > 0)
{
DevExpress.Office.Utils.OfficeImage myImage = docImageColl[0].Image;
System.Drawing.Image image = myImage.NativeImage;
string imageName = String.Format("Image_at_pos_{0}.png", docRange.Start.ToInt());
image.Save(imageName);
System.Diagnostics.Process.Start("explorer.exe", "/select," + imageName);
}
#endregion #SaveImageFromRange
}
static void ExportRangeToHtml(Document document)
{
#region #ExportRangeToHtml
document.LoadDocument("Documents//Grimm.docx", DocumentFormat.OpenXml);
// Get the range for three paragraphs.
DocumentRange r = document.CreateRange(document.Paragraphs[0].Range.Start, document.Paragraphs[0].Range.Length + document.Paragraphs[1].Range.Length + document.Paragraphs[2].Range.Length);
// Export to HTML.
string htmlText = document.GetHtmlText(r, null);
File.WriteAllText("test.html", htmlText);
// Show the result in a browser window.
System.Diagnostics.Process.Start("test.html");
#endregion #ExportRangeToHtml
}
static void ExportRangeToPlainText(Document document)
{
#region #ExportRangeToPlainText
document.LoadDocument("Documents//Grimm.docx", DocumentFormat.OpenXml);
string plainText = document.GetText(document.Paragraphs[2].Range);
DevExpress.XtraEditors.XtraMessageBox.SmartTextWrap = true;
DevExpress.XtraEditors.XtraMessageBox.Show(plainText);
#endregion #ExportRangeToPlainText
}
static void ExportSelectionToPlainText(Document document) {
#region #ExportSelectionToPlainText
document.LoadDocument("Documents//FloatingObjects.docx", DocumentFormat.OpenXml);
// Select footer.
SubDocument footerDocument = document.Sections[0].BeginUpdateFooter();
document.ChangeActiveDocument(footerDocument);
document.Selection = footerDocument.Paragraphs[0].Range;
document.Sections[0].EndUpdateFooter(footerDocument);
// Get selection as plain text.
SubDocument docRange = document.Selection.BeginUpdateDocument();
string plainText = docRange.GetText(docRange.Range);
document.Selection.EndUpdateDocument(docRange);
DevExpress.XtraEditors.XtraMessageBox.SmartTextWrap = true;
DevExpress.XtraEditors.XtraMessageBox.Show(plainText);
#endregion #ExportSelectionToPlainText
}
static void ExportFieldWithCodesToPlainText(Document document) {
#region #ExportFieldWithCodesToPlainText
document.LoadDocument("Documents//SampleTOC.docx", DocumentFormat.OpenXml);
string plainText = String.Empty;
foreach (Field item in document.Fields) {
string fieldCode = document.GetText(item.CodeRange);
string[] fieldParts = fieldCode.Split(' ');
if (fieldParts[0].Trim() == "TOC" && fieldParts[1].Trim() == "\\h") {
DevExpress.XtraRichEdit.Export.PlainTextDocumentExporterOptions exportOptions =
new DevExpress.XtraRichEdit.Export.PlainTextDocumentExporterOptions();
exportOptions.ExportHiddenText = true;
exportOptions.FieldCodeStartMarker = "[<";
exportOptions.FieldCodeEndMarker = ">";
exportOptions.FieldResultEndMarker = "]";
plainText = document.GetText(item.Range, exportOptions);
}
}
DevExpress.XtraEditors.XtraMessageBox.SmartTextWrap = false;
DevExpress.XtraEditors.XtraMessageBox.Show(plainText);
#endregion #ExportFieldWithCodesToPlainText
}
static void ExportToPlainTextWithTextFragmentOptions(Document document) {
#region #ExportToPlainTextWithTextFragmentOptions
document.LoadDocument("Documents//SampleTOC.docx", DocumentFormat.OpenXml);
string plainText = String.Empty;
foreach (Field item in document.Fields) {
string fieldCode = document.GetText(item.CodeRange);
string[] fieldParts = fieldCode.Split(' ');
if (fieldParts[0].Trim() == "TOC" && fieldParts[1].Trim() == "\\h") {
DevExpress.XtraRichEdit.API.Native.Implementation.TextFragmentOptions options =
new DevExpress.XtraRichEdit.API.Native.Implementation.TextFragmentOptions();
options.AllowExtendingDocumentRange = false;
foreach (Paragraph par in document.Paragraphs.Get(item.ResultRange)) {
plainText += document.GetText(par.Range, options);
plainText += Environment.NewLine;
}
}
}
DevExpress.XtraEditors.XtraMessageBox.SmartTextWrap = false;
DevExpress.XtraEditors.XtraMessageBox.Show(plainText);
#endregion #ExportToPlainTextWithTextFragmentOptions
}
}
}