レポートと証明書を印刷するgrailsアプリケーションがあり、jQueryprintElementを使用してhtmlの一部を印刷しようとしています。私のHTMLは、透かしのロゴと、アプリケーションの一部ではないがサーバーのファイルシステムに保存されているいくつかの画像で構成されています。Firefoxで正しく印刷できますが(PDFとプリンターを使用)、GoogleChromeでの印刷に問題があります。私の画像とロゴはアプリケーションの一部ではなく、画像はファイルシステムに保存され、JavaoutputStreamsを使用してブラウザに転送されます。すべての画像はクロムで正しく表示されますが、ファイルに印刷しようとしたり、jQuery printElementを使用してプリンターを使用したりすると、htmlページに表示されている画像を印刷できず、画像なしで印刷されます。
html imgタグを使用して印刷しています。また、次のコードを使用してサーバーコンテキストに保存されているローカル画像を印刷しようとすると、Chromeで適切に印刷されます。
<img src="${resource(dir:'images',file:'exclamation.png')}" alt="" />
しかし、次のコードスニペットを使用してファイルシステムの画像にアクセスしようとすると、htmlページに表示されていても画像を印刷できません。
<img src="${createLink(action:'getImage', controller:'image')}?image=${logoPath}"/>
これはhtmlで次のようにレンダリングされます
<img src="/myApp/image/getImage?image=/home/dave/pictures/logo.png" >
ここで、logoPathは、サーバーファイルシステムに保存されている画像の絶対パスです。私もの絶対属性を使用してみ<img>
ましたが、それは役に立ちません。
Firefoxで印刷できますが、Chromeでは印刷できません。そのため、Firefox専用のアプリケーションを制限しており、GoogleChromeでも動作させることができれば非常に役立ちます。
使用する
apache tomcat 6、JAVA 1.6、grails 1.3.7、jquery.printElement.min.js、Google Chrome 23(LinuxおよびWindows 7)、Firefox 16、17