我正在编写一个将XML转换为XHTML报告的XSL文件。此XML包含图像ID,这些图像ID是纸质扫描(US Letter),可以是各种尺寸,也可以是横向或纵向。我正在寻找一种方法将它们最大化打印到一页纸(带有自定义标题)。因此,我可以旋转图像以使其适合纵向页面,或者告诉打印机在横向模式下考虑此页面。看起来像:
<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>
我考虑过什么,为什么它不起作用:
我没有考虑过: - 反过来评估问题,使用另一个工具(例如perl脚本)来读取XML文件并生成正确的HTML报告。然而,如果可能的话,这将是我想避免的不同技术。
您如何看待这一点,您是否有一些经验,以及有关如何解决此问题的任何提示或建议?
一如既往,非常感谢你的时间。
致以最诚挚的问候,
曼尼
答案 0 :(得分:1)
如果您能够像评论中所说的那样在服务器端脚本上创建一些表单,我会考虑做一些事情
创建一个额外的脚本(即/img/GetInfoData.cgi?ID=2,返回类似于此的XML:<ImageInfo height="23" width="100" orientation="landscape" alt="Alt Text" src="/img/GetImage.cgi?ID=2"/>
然后在您的XSLT中,您可以使用<xsl:variable name="ImageInfo" select="document("/img/GetImageData.cgi?ID=2")/>
然后,您可以使用<xsl:if test="$ImageInfo/ImageInfo/@orientation='landscape'>
希望有所帮助。我相信它不是最快的解决方案,但它会阻止您使用太多其他技术。