0

在我的 Web 应用程序中,根据要求,我需要将 PDF 文件打印到激光打印机,而无需打开 Windows 默认的“打印”弹出窗口。

所以在这里我使用小程序来打印存储在 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() 操作后的字节是不同的。

那么如何保留与 new 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 回答