-
Notifications
You must be signed in to change notification settings - Fork 0
/
DocxEditor.cs
95 lines (74 loc) · 2.47 KB
/
DocxEditor.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
using System;
using Microsoft.Office.Interop.Word;
using Application = Microsoft.Office.Interop.Word.Application;
namespace PageSizeAdjustment
{
public class DocxEditor
{
private Application app = new Application();
private Document doc;
public DocxEditor(String inputFilePath)
{
doc = app.Documents.Open(inputFilePath);
}
public void deleteParagraphs()
{
app.Visible = true;
int paraCount = doc.Paragraphs.Count;
int deleted = 0;
int equationsNumber = 0;
int failed = 0;
foreach (Paragraph paragraph in doc.Paragraphs)
{
OMaths equations = paragraph.Range.OMaths;
if (equations.Count == 0)
{
try
{
deleted++;
paragraph.Range.Delete();
paragraph.TextboxTightWrap = WdTextboxTightWrap.wdTightAll;
}
catch (Exception e)
{
failed++;
}
}
else
{
equationsNumber++;
}
}
removeMargins(doc);
Console.Beep();
Console.WriteLine("deleted " + deleted + " paragraphs and failed to delete " + failed + "\nkept " + equationsNumber + " equations" + "\ntotal number of paragraphs in file is:" + paraCount);
}
public void SaveDocument()
{
doc.SaveAs2(FileName: "NewFile", FileFormat: WdExportFormat.wdExportFormatPDF);
}
public void CloseDocument()
{
doc.Close();
}
public void CloseApp()
{
app.Quit();
}
public void removeMargins(Document document)
{
document.PageSetup.LeftMargin = 0;
document.PageSetup.RightMargin = 0;
document.PageSetup.TopMargin = 0;
document.PageSetup.BottomMargin = 0;
}
public void findAndReplace(String find, String replace)
{
app.Selection.Find.ClearFormatting();
app.Selection.Find.Text = find;
app.Selection.Find.Replacement.ClearFormatting();
app.Selection.Find.Replacement.Text = replace;
app.Selection.Find.Execute(Replace: WdReplace.wdReplaceAll);
}
}
}