0

私のWebアプリケーションでは、要件に従って、ウィンドウのデフォルトの「印刷」ポップアップを開かずに、PDFファイルをレーザープリンターに印刷する必要があります。

そこで、ここではアプレットを使用して、HTMLテキスト領域に格納されているバイトを印刷しています。

ただし、new String(pdf.getByte [])の後に生成されるバイトは、実際のP​​DFバイトとは異なるようです。

私のコントローラーでは、以下に説明するように、スコープを要求するためにバイトを格納しています。

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()操作の前と同じバイトを保持できますか?

4

1 に答える 1

0

Base64メソッドを使用してbyte[]をStringに変換し、それをbyte[]にデコードして戻します

public static byte[] decode(String encoded)
public static String encode(byte[] binaryData) {
于 2013-01-23T06:42:19.263 に答える