使用PrintWriter通过Socket连接将PDF文件打印到打印机

Vis*_*kar 9 java sockets android

我必须使用具有特定IP地址的打印机打印pdf文件.我能够打印特定的文本,但我想打印文件或HTML解析文本.

我的代码:

try {
    Socket sock = new Socket("192.168.0.131", 9100);
    PrintWriter oStream = new PrintWriter(sock.getOutputStream());
    oStream.println("HI,test from Android Device");
    oStream.println("\n\n\n");
    oStream.close();
    sock.close();
} catch (UnknownHostException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

还请说明投票的原因

编辑

很多人都建议PDL,但如何将pdf转换为PDL?

Tec*_*iot 2

您需要使用 PDFBox 库,该库也适用于 Android。

您可以使用它来获取 PDF 文本,然后将其用于您的目的 -

Java 示例 -

import java.io.File;
import java.io.IOException; 
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;
import org.apache.pdfbox.text.PDFTextStripperByArea;

public class myProgram{

    public static void main(String[] args)
    try {
        PDDocument document = null;
        document = PDDocument.load(new File("my_file.pdf"));
        document.getClass();
        if (!document.isEncrypted()) {
        PDFTextStripperByArea stripper = new PDFTextStripperByArea();
        stripper.setSortByPosition(true);
        PDFTextStripper Tstripper = new PDFTextStripper();
        String st = Tstripper.getText(document);
        System.out.println("Text:" + st);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

}
Run Code Online (Sandbox Code Playgroud)

PdfBox-Android 版

或者使用MuPDF