22

.docx ファイルを開いて、Interop.Word.Application を使用して PDF に変換しようとしています。コンソール アプリケーションとして動作しますが、Web アプリケーションで同じものを使用すると動作しません。フォルダのアクセス許可を確認しようとしました。「ネットワーク サービス」にフル コントロールを与えましたが、それでも word.Documents.Open にオブジェクト参照が設定されていません。何が問題なのか教えてください。このエラーで立ち往生しています。私にお知らせください。提案をいただければ幸いです。ありがとうございました。

    Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application();

    object oMissing = System.Reflection.Missing.Value;

    word.Visible = false;
    word.ScreenUpdating = false;
    string fileName = @"c:\OUTPUT\test.docx");
    Document doc = word.Documents.Open(filename, 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, ref oMissing);
        doc.Activate();
4

7 に答える 7

69

あなたがまだ答えを探しているなら、私のプロジェクトのためにほんの少し前に見つけました。

DCOM 構成設定を開きます。

  1. 開始 ->dcomcnfg.exe
  2. コンピューター
  3. ローカル コンピューター
  4. DCOM の構成
  5. 検索Microsoft Word 97-2003 Documents-> プロパティ

タブ、 からにIdentity変更Launching UserInteractive User

于 2012-07-06T09:43:03.633 に答える
25

これを試してみてください。

  • 「C:\Windows\SysWOW64\config\systemprofile\」内に新しい「Desktop」ディレクトリを作成します

解決策を探して長い長い一日を過ごした後、それは私にとってはうまくいきます。

プロファイルの問題のようです。

于 2014-07-10T08:23:40.500 に答える
1

これは私にとってはうまくいきました。 https://social.msdn.microsoft.com/Forums/en-US/0f5448a7-72ed-4f16-8b87-922b71892e07/word-2007-documentsopen-returns-null-in-aspnet .

これがあなたを助けるなら、それを答えにしてください

于 2015-09-29T08:45:31.887 に答える
0

PaulieがOPに関するコメントで述べたように、この問題は主にWebサーバー上のライブラリが原因だと思います。あなたはこれをウェブアプリで動作させるためにハックすることができるかもしれませんが、私はそれに反対することをお勧めします。

編集:ああ、私は投稿を読み間違え、Excelを想定しました。これは、私の経験ではOffice.Interopを使用するときにほとんどの人が探しているものです;)

DocX形式で動作するオープンライブラリがあります(ここにリンクの説明を入力してください)。残念ながら、彼はこのページで、Office.Interopライブラリ(http://cathalscorner.blogspot.com/2009/10/converting-docx-into-doc-pdf-html.html )がないとPDFなどの形式への変換はほとんど不可能であることを認めています。 )。

これは「有望な」代替案ですが、YMMVです

于 2012-05-31T16:26:03.887 に答える