あなたのアイデアを共有してください!フォルダを確認し、PDF内の拡張子が異なる一連のドキュメントを変換する際に問題が発生しました
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using Microsoft.Office.Interop.Word;
namespace ConsoleApplication7
{
class Program
{
static void Main(string[] args)
{
Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application();
object oMissing = System.Reflection.Missing.Value;
word.Visible = false;
word.ScreenUpdating = false;
object aa = WdOpenFormat.wdOpenFormatAuto;
string errorMessage = null;
word.DisplayAlerts = WdAlertLevel.wdAlertsNone;
//selection extension
var allExtentionGroupFiles = Directory.GetFiles(@"C:\path", "*.*").
Where(s=>!s.Contains("~$") && (s.EndsWith(".docx")
|| s.EndsWith(".doc")
|| s.EndsWith(".docm")
|| s.EndsWith(".dotx")
|| s.EndsWith(".dotm")
|| s.EndsWith(".dot")
|| s.EndsWith(".mht")
|| s.EndsWith(".mhtml")
|| s.EndsWith(".rtf")
|| s.EndsWith(".txt")
|| s.EndsWith(".xml")
|| s.EndsWith(".odt")
|| s.EndsWith(".wps"))).
GroupBy(s=>s.Substring(s.LastIndexOf('.'))).OrderBy(s=>s.Key);
foreach (var currentExtentionGroup in allExtentionGroupFiles)
{
Console.WriteLine("-->>{0}", currentExtentionGroup.Key);
foreach (var currentDoc in currentExtentionGroup)
{
Object filename = (Object)currentDoc;
try
{
//open current document
Document document = word.Documents.Open(filename,ConfirmConversions:aa,OpenAndRepair:true,Revert:true);
document.Activate();
object outputFileName = currentDoc.Replace(currentExtentionGroup.Key, ".pdf").Insert(10, "TEST");
object fileFormat = WdSaveFormat.wdFormatPDF;
document.SaveAs(ref outputFileName,
ref fileFormat, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing);
document.Close();
}
catch (Exception e1)
{
errorMessage = e1.ToString();
}
}
}
word.Quit();
}
}
}
コードが機能している場合、問題は、ドキュメントを開くと、許可されている拡張子がすべて正しく機能することですが、たとえば、フォルダc:\pathが破損しているドキュメントの例DoSomething.exeDoSomething.docの拡張子を誰かが変更したとします。応答を停止するWordで、このファイルを手動で開こうとすると、モーダルウィンドウのファイル変換が表示されます。この場合の対処方法