在我的网络应用程序中,根据要求我需要将PDF文件打印到激光打印机而不打开Windows默认的“打印”弹出窗口。
所以我在这里使用applet来打印存储在HTML文本区域中的字节。
但似乎新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文件已损坏。”所以新的String()操作后的字节是不同的。
那么如何保留与新String()操作之前相同的字节??
答案 0 :(得分:0)
使用Base64方法将byte []转换为String并将其解码回byte []
public static byte[] decode(String encoded)
public static String encode(byte[] binaryData) {