locked
Ver.4の印刷でPDFやXPSファイルが作成できない RRS feed

  • 質問

  • 印刷機能を使い、印刷先としてPDFやXPSファイル作成のためのプリンタエミュレータドライバを選択すると、権限の問題でファイルを作成することができません。

    ただし、デスクトップアプリとして実行する場合は問題なく保存できました。

    以上の件はVS2010のデバッグ環境でのものですが、本番環境でも同じでしょうか。同じだとするとブラウザ上から印刷した際の制限はちょっと理解に苦しみます。あるいは、この制限を解除する方法があればいいのですが・・・

    なにかご存じの方がいらっしゃいましたらよろしくお願いいたします。

    2010年12月3日 7:11

すべての返信

  • 印刷機能を使い、印刷先としてPDFやXPSファイル作成のためのプリンタエミュレータドライバを選択すると、権限の問題でファイルを作成することができません。

    ただし、デスクトップアプリとして実行する場合は問題なく保存できました。

    プリンタエミュレータドライバは何を使っているのでしょうか?

     

    たとえば XPS なら、CodeRecipe に Microsoft XPS Document Writer を使って出力するサンプルがありました。

    http://msdn.microsoft.com/ja-jp/silverlight/ff954087.aspx

    これと同じようなことをやっても出力に失敗するのでしょうか?

     


    なかむら(http://d.hatena.ne.jp/griefworker)
    2010年12月4日 1:17
  • ブラウザ上からの実行時とアウトオブブラウザでの実行時に適用されるセキュリティ条件は異なります。
    そのあたりが影響しているのではないでしょうか。

    セキュリティの話については下記のURLからダウンロードできるドキュメントが詳しいかと。
    http://d.hatena.ne.jp/mohno/20100512/silverlight

    この制限をはずすことはできないはずです。
    というかできるようだったら大問題になりますね。。。


    あおい情報システム株式会社 小野修司(どっとねっとふぁん)
    2010年12月4日 3:26
  • 権限の関係で保存できないわけですから、もちろんセキュリティに関する問題と思われます。
    ただ、単純に考えると印刷の結果出力が紙は良くてファイル出力がだめという理由は一切無いはずと考えています。

    また、印刷は必ずダイアログボックスによりユーザの操作が介在しますし、印刷を許可したなら印刷に関する操作の責任は以後ユーザにゆだねられるべきで、その先に制約が存在するのは不自然で、Silverlightのバグなのではないかと考えてしまうのですが。

    2010年12月4日 8:23
  • ちなみに SaveFileDialog でのファイル保存はどうなのかと思って先日の印刷試験プログラムにボタンを一つ追加して、簡単なテキストを保存するコードを追加してみました。

    すると、大きな問題が発生しました。

    SaveFileDialog での保存はブラウザ外、ブラウザ内共に問題なく使えたのですが、なんと、今度は印刷(PDFもXPFも)もブラウザ内でできるようになってしまったのです。

    まだ再現テストをしていませんが、VisualStudio2010で一端ブラウザー外実行を有効にするをチェックし、デバッグ実行も行い、そのあと、再度チェックを外して元に戻すと最初とは何か状態が変わってしまうのかも知れません。

    問題の本質はVisualStudioのバグの可能性も出てきてしまいました。

    2010年12月4日 8:43
  • その後、実際のインターネット上のサーバにリリースモードでビルドしたものを配置して実験をしたところ(いわゆる本番環境)、ブラウザ内でもちゃんと印刷結果をファイルに出力することが可能でした。

    となると、VisualStudio2010のデバッグモードに何らかのバグが潜んでいるような気がします。特に、印刷関係のプログラムの開発時は実際に紙に出力はせず、ファイルに出力する場合が多いので早急な対応を望みたいと思います。

    2010年12月5日 16:26