数か月前、学校を卒業しているときに、Wordを隠してドキュメントをPDFに変換する基本的なアプリケーションを作成しました。私がアプリを開発したクライアントは、任意のバージョンの単語を使用できるようにする必要があるため、検出したときに遅延バインディングを使用する必要があります。これで、アプリはOffice相互運用機能を使用して完全に機能しますが、代わりに遅延バインディングを使用するようにすべてを変換するのに問題があります。
単語ドキュメントを開くことができましたが、次の問題が発生しました。
Type wordType = Type.GetTypeFromProgID("Word.Application");
if(wordType == null)
throw new Exception(message);
dynamic wordApplication = null;
wordApplication = Activator.CreateInstance(wordType);
if(wordApplication == null)
throw new Exception(message);
dynamic wordDocument = null;
object paramSourceDocPath = sourceDocPath;
object paramMissing = Type.Missing;
WdExportFormat targetFormat = WdExportFormat.wdExportFormatPDF;
WdExportOptimizeFor paramExportOptimizeFor = WdExportOptimizeFor.wdExportOptimizeForOnScreen;
WdExportRange paramExportRange = WdExportRange.wdExportAllDocument;
int paramStartPage = 0;
int paramEndPage = 0;
WdExportItem paramExportItem = WdExportItem.wdExportDocumentContent;
bool paramIncludeDocProps = true;
bool paramKeepIRM = true;
WdExportCreateBookmarks paramCreateBookmarks = WdExportCreateBookmarks.wdExportCreateWordBookmarks;
bool paramDocStructureTags = true;
bool paramBitmapMissingFonts = true;
bool paramUseISO19005_1 = false;
try
{
// Open the source document.
wordDocument = wordApplication.Documents.Open(ref paramSourceDocPath, ref paramMissing, ref paramMissing, ref paramMissing,
ref paramMissing, ref paramMissing, ref paramMissing, ref paramMissing, ref paramMissing, ref paramMissing,
ref paramMissing, ref paramMissing, ref paramMissing, ref paramMissing, ref paramMissing, ref paramMissing);
// Export it in the specified format.
if (wordDocument != null)
wordDocument.ExportAsFixedFormat(targetFilePath, targetFormat, openAfter, paramExportOptimizeFor,
paramExportRange, paramStartPage, paramEndPage, paramExportItem, true, true, paramCreateBookmarks, true,
true, false, ref paramMissing);
}
Office相互運用機能アセンブリへの参照を削除したため、WdExportXXXXXXアイテムを解決できません。私は実際に遅延バインディングを使用したことがなく、これらのタイプを解決する方法がわかりません。それが解決されたら、ExportAsFixedFormat関数呼び出しが機能することを願っています。