2016-05-01 14 views
1

私は開発中のAndroidプログラムを使用してネットワークプリンタにファイル(pdfファイル)を送信しようとしていますが、プリンタは実際の文書の代わりにランダムな文字を印刷しています。別のアプリを使用して、同じプリンタに「」という一般的なプリンタドライブと呼ばれるものを使用して印刷できました。一般的なプリンタドライバがアンドロイド用に見つかりませんでした。ジェネリックdrviersが存在する場合、私は、ワイヤレスプリンタを使用するには、Android上でインストールすることができます一般的なプリンタドライバ - Android

私は、プリンタにファイルを送信するために使用していたコードは次のとおりです。!

Socket socket = new Socket(); 
try { 
    socket.connect(new InetSocketAddress(IP, Port (9100)), 5000); 
    BufferedOutputStream bos; 

    bos = new BufferedOutputStream(socket.getOutputStream()); 
    InputStream in = new FileInputStream(new File (fileName)); 

    int c; 
    byte[] bytes = new byte[1024]; 

    while ((c = in.read(bytes)) != -1) { 
     bos.write(bytes, 0, c); 
    } 

    bos.flush(); 
    bos.close(); 
    socket.close(); 

} catch (IOException e) { 
    e.printStackTrace(); 
} 

おかげ

答えて

1

Androidは独自のprinting frameworkがあり、Android 4.4(APIレベル19)から利用できます。あなたの代わりにプリンタに直接ファイルを送信したい場合

ただし、ファイルがお使いのプリンタのサポートが利用できるようになるプリンタが

PCL6, BR-Script 3, IBM Pro-Printer XL, Epson FX-850 

のように理解してエミュレーションエミュレーションに変換する必要がありますプリンタのマニュアルに記載されています。

一般的なプリンタドライブアプリは、PDFをイメージに変換してから、このイメージをプリンタがサポートするエミュレーションに変換してバイトとしてプリンタに送信します。

+0

ありがとうございました。しかし、PrinterShareのようないくつかのアプリは、どのプリンタでも動作する「デフォルトプリンタ」ドライバを持っていますか? –

+0

プレイストアの[共有プリンタプラグイン - CUPS](https://play.google.com/store/apps/details?id=org.cups.android)とそのソースを[github](https: //github.com/pelya/android-print-plugin-cups)。これは、さまざまなプリンタ用のカップやゴーストスクリプトを使って、Android上でどのように行われるかの良い例を示しています。 – agomes

+0

ありがとうございました。私はこれが私が探していたものだと信じています。 –

0

アンドロイドは、「プリントを持っていますドライバ "と呼ばれているが、それ自身でのみprinting frameworkで、実行している種類の直接的なプリンタ通信ではありません。

関連する問題