我在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);
}
這是一個很大的代碼。期望人們閱讀太多了。如果將其降至最小的工作示例,您將更有可能獲得高質量的答案。所以我會將有關字體大小的東西映像成可以刪除。我們不需要閱讀。 – 2013-03-14 08:26:01