2

我正在尝试从我的 android 应用程序中打印 PDF。但是每次我尝试打印我的打印页面时都会包含奇怪的数据,例如:

  java.io.FileInputStream@418479b0

我假设我的 pdf 没有以正确的方式呈现......现在有人可以如何正确地将我的 pdf 转换为我的输出流吗?

我已经尝试了这个问题的代码(在 android 中打印 pdf),但是我在打印的页面上得到了以下输出:

   Filter/FlateDecode/Length 69 >>stream

有谁能够帮我?:)

这是我的代码:

    Socket socket = new Socket();
    String sIP = "192.168.0.250";
    String sPort = "9100";

    InetSocketAddress socketAddress = new InetSocketAddress(sIP, Integer.parseInt(sPort));
    DataOutputStream outputStream;

    try{
        //file init
        File pdfFile = new File(file);
        byte[] byteArray=null;
        InputStream inputStream = new FileInputStream(pdfFile);
        String inputStreamToString = inputStream.toString();
        byteArray = inputStreamToString.getBytes();
        inputStream.close();

        //Socket init
        socket.connect(socketAddress, 3000);
        outputStream = new DataOutputStream(socket.getOutputStream());
        outputStream.write(byteArray);
        outputStream.close();
        socket.close();
    }catch(Exception e){
        e.printStackTrace();
    }
4

1 回答 1

0

您可以尝试这样的方法来获取 byteArray:

//file init
File pdfFile = new File(file);
byte[] byteArray = new byte[(int) pdfFile.length()];
FileInputStream fis = new FileInputStream(pdfFile);
fis.read(byteArray);
fis.close();
于 2013-04-19T09:50:12.727 回答