0

XML を XHTML レポートに変換する XSL ファイルを作成しています。この XML には、紙のスキャン (US レター) であるイメージ ID が含まれており、さまざまなサイズで、横向きまたは縦向きにすることもできます。それらを紙のページに最大化して印刷する方法を探しています(カスタムヘッダー付き)。したがって、画像を回転させて縦向きのページに合わせるか、プリンタにこのページを横向きモードと見なすように指示することができます。次のようになります:

<img id="portrait" src="http://1.2.3.4/img/getImage.cgi?ID=1" />
<img id="landscape" src="http://1.2.3.4/img/getImage.cgi?ID=2" />

また

<img src="http://1.2.3.4/img/getImage.cgi?ID=1" />
<div id="landscape">
    <img src="http://1.2.3.4/img/getImage.cgi?ID=2" />
</div>

私が考えたこと、そしてそれがうまくいかない理由:

  • XSLは画像をリンクするだけでロードしないため、それらのプロパティを認識しないため、XSLでは実行できないことを私は知っています。
  • HTMLはXSLT変換によってレンダリングされ、悲しいことにコード自体を更新できないため、HTMLもそれを行うことができません;)
  • それもCSSの目的ではないと思います。また、JavaScript はおそらく Flying Saucer (PDF 生成) ではうまく動作しませんが、試してみたいとは思っていますが、明確な方法は見つかりませんでした。
  • DB 内の画像を取得する CGI スクリプトにアクセスできません。だから私はそれらを変更することはできません。

考慮していないこと : - 別のツール (perl スクリプトなど) を使用して XML ファイルを読み取り、適切な HTML レポートを作成して、問題を逆に評価します。ただし、これは可能であれば避けたい別のテクノロジーです。

これについてどう思いますか。これについての経験がある人や、この問題を解決する方法に関するヒントや提案はありますか?

いつもありがとうございます。

よろしくお願いします、

マニー

4

1 に答える 1

1

コメントで言っているように、サーバーサイドスクリプトで何らかのフォームを作成できる場合は、何かをすることを検討します

  1. 追加のスクリプトを作成します (つまり、/img/GetInfoData.cgi?ID=2 は次のような XML を返します。<ImageInfo height="23" width="100" orientation="landscape" alt="Alt Text" src="/img/GetImage.cgi?ID=2"/>

  2. 次に、XSLTで使用できます<xsl:variable name="ImageInfo" select="document("/img/GetImageData.cgi?ID=2")/>

  3. その後、次を使用して ImageInfo をテストできます。<xsl:if test="$ImageInfo/ImageInfo/@orientation='landscape'>

それが役立つことを願っています。これが最速のソリューションではないことは確かですが、多くの追加テクノロジを使用する必要がなくなります。

于 2012-05-02T14:59:18.800 に答える