1

RFC 1942 で言及されている標準の 2 パス アルゴリズムがあります。誰でも知っていますか?Mozilla や WebKit のコード ベースで役に立つものを見つけることができませんでしたが、どこを見ればよいのか完全にはわかりません。

これは実際には HTML (表のセルの内容) を実際にレンダリングしなければならないというより深刻な問題かもしれませんが、それをシンプルに保つために - プレーンテキストの HTML 表を画像として表示します。「イメージとして」の部分を無視する HTML テーブル レンダリング アルゴリズムでさえ...

4

6 に答える 6

1

商用ツールがオプションである場合は、以下を参照してください。

HtmlCapture ActiveX Control V2.0(元々はHtmlSnapという名前でした)

彼らが主張するいくつかの機能:

  • SnapHtmlString()を呼び出すことにより、html文字列のスナップショットを作成できます。
  • MicrosoftIEまたはMozillaFirefoxのいずれかによってレンダリングされたスナップショット画像を取得します。
  • SnapUrl()とSaveImage()を呼び出すだけで、WebページのスナップショットをBMP、JPG、JPEG、GIF、PNG、TIF、TGA、PCXなどのさまざまな画像に取り込むことができます。
  • HTMLをEMFやWMFなどのベクター画像形式に変換します。
  • サードパーティの依存関係のない自己完結型のActiveXコントロール。
  • 結果の画像のカスタムgdi出力をサポートします。
  • 結果の画像をファイルとメモリの両方に保存することをサポートします。
  • フルサイズのWebページとサムネイルの両方の保存をサポートします。
  • ウェブページ全体のスナップショットをスクロールバーなしで1つの画像にまとめます。
  • 品質を維持するために、効率的なアルゴリズムを使用してグレースケールまたは白黒画像を作成します。
  • JPEG圧縮レベル、TIFFおよびGIFの圧縮方法の選択をサポートします。
  • 画像の品質を可能な限り維持しながら、画像の色深度の設定をサポートします。
  • 必要に応じて、ActiveX、画像、Javaアプレット、スクリプト、およびビデオをWebページに選択的に保存します。
  • スナップショットリクエストでカスタムCookie、httpヘッダー、クレデンシャルを送信します。
  • プロキシサーバーを介してWebページのスナップショットを作成します。
  • VC、C-、Delphi、VB、C ++ Builder、Java、JScript、Perl、VBScript、ASP、ASP.net、およびPHPで記述された30を超えるサンプルが提供されています。
于 2008-10-13T04:24:10.117 に答える
0

これが制約を満たすかどうかはわかりませんが、IEまたはIEコントロールとMSHTMLおよびIHTMLElementRenderインターフェイスを使用して、テーブルをデバイスコンテキストにレンダリングしてみてください。

于 2008-10-13T04:11:51.063 に答える
0

html テーブルのレンダリングは、セルのサイズを指定するさまざまな方法、テーブル内にネストされたテーブルなどのために自明ではありません。

画像だけが必要な場合、簡単な解決策は .NET ブラウザー コントロール (基本的に IE の COM コンポーネント) とスクリーン キャプチャ機能です。

操作するソースを入手したい場合は、Mozilla のソースがまだ利用可能である必要があります。

于 2008-10-13T03:51:05.613 に答える
0

プレーンな HTML ではなく XHTML を使用している場合は、これらのセルのコンテンツをテーブルの構造に関する情報 (colspan、rowspan など) と共に取得できるはずです。この情報を使用して、独自の境界線、パディング、およびマージン値。

ユーザー定義の寸法もレンダリングしたい場合、事態は複雑になります。ただし、テーブル データを取得して描画するには、XML パーサーを使用できます。PHP のパーサーはこちら: http://ca3.php.net/xml

于 2008-10-13T05:54:22.307 に答える
0

近いツールの 1 つ: http://www.terrainformatica.com/htmlayout/main.whtm

このライブラリは、レンダリングされた HTML を画像にキャプチャする方法を提供しますが、オープン ソースではありません (ただし無料です!)。一部の人に役立つことを願っています!

残念ながら、私のアプリはクロスプラットフォームの C/C++ であり、MFC やプラットフォームへの依存関係はありません (悪夢!)。テーブルレンダリング用の汎用アルゴリズムを見つけたいと思っています。RFC の 2 パス オプションはかなり近いと思うので、掘り下げてそれに反対するつもりです。可能であれば、それについてブログを書き、最終的な解決策をここに投稿します。

于 2008-10-13T07:07:54.390 に答える
0

Prince XMLを見てみましょう。これは、CSS スタイルの XML (XHTML を含む) ドキュメントを PDF にレンダリングするための商用ツールです。このツールは、XHTML や CSS2.1 などの主要な W3C 標準に準拠しています。ホームページから無料のデモ版を試すことができます!

画像が必要なので、生成された PDF をプログラムで画像に変換することは大きな問題にはなりません。

于 2008-10-13T08:31:53.673 に答える