私のWebアプリケーションでは、要件に従って、ウィンドウのデフォルトの「印刷」ポップアップを開かずに、PDFファイルをレーザープリンターに印刷する必要があります。
そこで、ここではアプレットを使用して、HTMLテキスト領域に格納されているバイトを印刷しています。
ただし、new String(pdf.getByte [])の後に生成されるバイトは、実際のPDFバイトとは異なるようです。
私のコントローラーでは、以下に説明するように、スコープを要求するためにバイトを格納しています。
request.setAttribute(PageRenderConstant.MULTI_SEL_PDF,new String(printOutputVO.getPdfBytes()));
そしてHTMLで...私は以下のようにバイトを保存しています..
<textarea style="visibility: hidden;" name="laserPrintData" id="laserPrintData" >
${multiselpdffile}
</textarea>
そして、これがドキュメントをレーザープリトナーに印刷するためのアプレットコードです...
function print(){
var applet = document.jZebra;
if (applet != null) {
var data = $("#laserPrintData").val();
//applet.append(data);
applet.appendPDF(data);
applet.printPS();
}
}
ただし、「提供されたPDFは破損したファイルです」と表示されます。したがって、new String()操作後のバイトは異なります。
では、どうすれば新しいString()操作の前と同じバイトを保持できますか?