必要な機能として、ユーザーがスクリーンショットを撮れるようにしたいASP.Netアプリケーションがあります。これをシミュレートできることはわかっていますが、URL (または現在レンダリングされているページ) を取得して、それをサーバーに保存できる画像に変換する方法があれば非常に便利です。
これはクレイジーですか?それを行う方法はありますか?もしそうなら、参考文献はありますか?
必要な機能として、ユーザーがスクリーンショットを撮れるようにしたいASP.Netアプリケーションがあります。これをシミュレートできることはわかっていますが、URL (または現在レンダリングされているページ) を取得して、それをサーバーに保存できる画像に変換する方法があれば非常に便利です。
これはクレイジーですか?それを行う方法はありますか?もしそうなら、参考文献はありますか?
ブラウザ内からそれを行う方法はなく、 . あなたのページが GMail を iframe に埋め込んでいると想像してください。次に、その人の GMail 受信トレイのスクリーンショットを盗むことができます。
これは、クロスドメインの制限に違反するすべての iframe と埋め込みをブラウザで「ブラックアウト」することで安全にすることができます。
これを行うための拡張機能を作成することもできますが、上記で概説したセキュリティの考慮事項に注意してください。
更新:キャンバス ユーティリティ関数を使用して、コードと同じオリジンのページのスクリーンショットを取得できます。これを可能にする lib もあります: http://experiments.hertzen.com/jsfeedback/
ここで他の可能な答えを見つけることができます: HTML5/Canvas/JavaScript を使用してスクリーンショットを撮る
Browsershotsには、XML-RPC インターフェイスと利用可能なソース コード (Python) があります。
ここでダウンロードできる無料のアセンブリ UrlScreenshot.dll を使用しました。
うまく動作します!
WebSiteScreenShotもありますが、無料ではありません。
別のアプローチを取りませんか?
ユーザーが同じコンテンツを繰り返し表示できるようにする必要がある場合、それはアプリケーションのビジネス要件であるように思われるため、アプリケーションに組み込む必要があります。
同じユーザー (セッションがあり、アプリケーションが異なるユーザーに異なるものを表示すると仮定) が同じ URL にアクセスすると、常に同じものが表示されるように URL を構成します。次に、URL をローカルでブックマークするか、ユーザー プロファイルに保存するアプリケーション機能を使用することもできます。
これには、site.com/view/whatever-information-needed-here などの「クリーンな URL」を作成することも含まれます。
古くなるにつれて変化する時間ベースのデータを扱っている場合、おそらくいくつかの可能なアプローチがあります。
現在のサイトのスクリーンショットをディスク上のファイルに保存できる Internet Explorer 用のIE7 Proなどのブラウザ プラグインを試すことができます。FireFox 用の同等のプラグインもあると確信しています。
あなたが説明したようなことをしたい場合。こちら で説明されているように、IE 出力を出力する外部プロセスを呼び出す必要があります。