我正在用 c# 编码以将 PDF 文档转换为 MS Word 并根据我的需要格式化 word 文档。
谁能建议我如何
- 将光标焦点设置到每个句子的末尾,并在每个句子的末尾按回车键。
- 仅选择并格式化每个段落的第一个字母。
这是我正在使用的代码:
for (int i = 0; i < selectedFiles; i++)
{
inFileName = openFile.SafeFileNames[i];
outFileName = inFileName;
pos = inFileName.LastIndexOf('.');
if (pos > 0)
outFileName = outFileName.Substring(0, pos);
outFileName += ".doc";
//outFileName = savePDFFile.FileName;
//Convert(openFile.SafeFileNames[i], outFileName);
Convert(cPath + inFileName, cPath + outFileName);
Object oMissing = System.Reflection.Missing.Value;
//OBJECTS OF FALSE AND TRUE
Object oTrue = true;
Object oFalse = false;
//Create word document
Word.Application oWord = new Word.Application();
Word.Document oWordDoc = new Word.Document();
Object oTemplatePath = cPath + outFileName;
oWordDoc = oWord.Documents.Add(ref oTemplatePath, ref oMissing, ref oMissing, ref oMissing);
#region Replace Keyword
this.FindAndReplace(oWord, " ", " ");
this.FindAndReplace(oWord, ". ", ".");
this.FindAndReplace(oWord, " . ", ".");
this.FindAndReplace(oWord, " .", ".");
this.FindAndReplace(oWord, "-", " – ");
this.FindAndReplace(oWord, ",", " ,");
this.FindAndReplace(oWord, " , ", " ,");
this.FindAndReplace(oWord, " -", "-");
this.FindAndReplace(oWord, " - ", "-");
this.FindAndReplace(oWord, "- ", "-");
#endregion Replace Keyword
Word.Range rng = null;
if (oWordDoc.Sentences.Count > 0)
{
object startLocation = oWordDoc.Sentences[1].Start;
object endLocation = oWordDoc.Sentences[1].End;
// Supply a Start and End value for the Range.
rng = oWordDoc.Range(ref startLocation, ref endLocation);
// Select the Range.
rng.Select();
}
object missing = Missing.Value;
object what = Word.WdGoToItem.wdGoToLine;
object which = Word.WdGoToDirection.wdGoToLast;
oWordDoc.GoTo(ref what, ref which, ref missing, ref missing);
for (int j = 0; j < oWordDoc.Sentences.Count; j++)
{
//oWordDoc.Sentences[j].Text = oWordDoc.Sentences[j].Text.ToString() + "\n";
}
// add header
foreach (Section section in oWordDoc.Sections)
{
Range headerRange = section.Headers[WdHeaderFooterIndex.wdHeaderFooterPrimary].Range;
headerRange.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphLeft;
headerRange.Font.Size = 12;
headerRange.Font.Name = "Ariel";
if (rng != null)
headerRange.Text = rng.Text.Trim();
}
rng.Text = "";
object findStr = "rr"; //sonething to find
while (oWord.Selection.Find.Execute(ref findStr)) //found...
{
//change font and format of matched words
oWord.Selection.Font.Name = "Tahoma"; //change font to Tahoma
oWord.Selection.Font.Size = 48;
oWord.ActiveWindow.Selection.ParagraphFormat.LineSpacingRule = Word.WdLineSpacing.wdLineSpaceSingle;
//oWord.ActiveWindow.Selection.ParagraphFormat.SpaceAfter = 0.0F;
oWord.Selection.Font.ColorIndex = Microsoft.Office.Interop.Word.WdColorIndex.wdRed; //change color to red
}
oWordDoc.Content.Font.Name = "Franklin Gothic Book";
oWordDoc.Content.Font.Size = 11.5F;
oWordDoc.Content.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphJustify;
//oWordDoc.Content.Start = 0;
oWordDoc.ShowGrammaticalErrors = false;
oWordDoc.ShowSpellingErrors = false;
//oWordDoc.Content.Sections.First
oWordDoc.SaveAs(cPath + outFileName);
progressBar1.Value = (((i + 1) * 100) / selectedFiles);
}