PDFドキュメントをMS Wordに変換し、必要に応じてWordドキュメントをフォーマットするためにc#でコーディングしています。
誰でも私に方法を提案できますか
- カーソル フォーカスを各文の最後に設定し、各文の最後で Enter キーを押します。
- すべての段落の最初のアルファベットのみを選択して書式設定します。
私が使用しているコードは次のとおりです。
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);
}