Word文書をswfファイルに変換しようとするコードに取り組んでいます。
私はこのようにします:
- Office コンポーネント サービスを使用して、Word 文書を PDF 文書に変換します。
- swftools を使用して PDF を swf に変換します。
私は自分のコンピューター (64 ビット、Windows Server 2008 R2、Office 2010) で実行しましたが、正常に動作しますが、サーバー (64 ビット、Windows サーバー 2008 R2、Office2010) に配置すると、[名前を付けて保存] ダイアログが表示されます。コードがプログラムでWordを閉じようとしているときに表示され、「保存」または「キャンセル」をクリックすると、「ファイルは読み取り専用です」という例外がスローされます。しかし、実際には、元のファイルを変更したわけではなく、単に開いて PDF ドキュメントとして保存しただけです。
「WordをPDFに変換する」コードは次のとおりです。
bool ret = true;
Microsoft.Office.Interop.Word.Application newApp = new Microsoft.Office.Interop.Word.Application();
Microsoft.Office.Interop.Word.Document doc = null;
object Unknown = Type.Missing;
try
{
object Source = path;
object Target = path.Substring(0, path.LastIndexOf(".")) + ".pdf";
if (outpath != "")
Target = outpath;
object readOnly = true;
object format = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF;
doc = newApp.Documents.Open(ref Source, ref Unknown, ref readOnly,
ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown);
doc.SaveAs(ref Target, ref format,
ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown);
}
catch (Exception e)
{
ret = false;
}
finally
{
if (doc != null)
{
doc.Close(ref Unknown, ref Unknown, ref Unknown);
//dialog shows up here
}
newApp.Quit(ref Unknown, ref Unknown, ref Unknown);
GC.Collect();
}
return ret;
助言がありますか?