android通过局域网连接打印机不是很好实现,最近做了个通过android生成pdf上传到后台,后台调用pc驱动完成打印功能。
Desktop desktop;
if (Desktop.isDesktopSupported()) {
desktop = Desktop.getDesktop();
try {
<span style="color:#ff6666;"> desktop.print(new File("d:\\upload\\" + fileName));
</span> map.put("resultId", 1);
map.put("detail", "success print");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
map.put("resultId", 0);
map.put("detail", e.getMessage());
}
} else {
map.put("resultId", -1);
map.put("detail", "not Support print");
}
1:利用Itext插件生成pdf
public int dkzzszyfp() {
// 1:建立Document对象实例
Document document = new Document(PageSize.A4, 50, 50, 50, 50);
FileOutputStream fos;
try {
fos = new FileOutputStream(new File(
Environment.getExternalStorageDirectory()
+ "/kuangtiecheng1.pdf"));
// 2:建立一个PDF 写入器与document对象关联通过书写器(Writer)可以将文档写入到磁盘中
PdfWriter.getInstance(document, fos);
// 3:打开文档
document.open();
// 解决中文不显示问题
BaseFont bfChinese = BaseFont.createFont("STSong-Light",
"UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
Font fontChina18 = new Font(bfChinese, 18);
Font fontChina12 = new Font(bfChinese, 12);
// 4:向文档添加内容
// 标题
Paragraph titleParagraph = new Paragraph("业务顾问分析表", fontChina18);
titleParagraph.setAlignment(Element.ALIGN_CENTER);// 居中
document.add(titleParagraph);
// 空格
Paragraph blank1 = new Paragraph(" ");
document.add(blank1);
// 编号
Chunk c1 = new Chunk("编号:", fontChina12);
Chunk c2 = new Chunk("20160531001", fontChina12);
Paragraph snoParagraph = new Paragraph();
snoParagraph.add(c1);
snoParagraph.add(c2);
snoParagraph.setAlignment(Element.ALIGN_RIGHT);
document.add(snoParagraph);
// 填开日期
Chunk c5 = new Chunk("填开日期:2016年05月14日", fontChina12);
Paragraph tkrqParagraph = new Paragraph();
tkrqParagraph.add(c5);
tkrqParagraph.setAlignment(Element.ALIGN_RIGHT);
document.add(tkrqParagraph);
// 空格
document.add(blank1);
// 表格处理
PdfPTable table = new PdfPTable(6);// 八列
table.setWidthPercentage(100);// 表格宽度为100%
InputStream abpath = getClass().getResourceAsStream(
"/assets/bq.png");
// String path = new String(InputStreamToByte(abpath ));
//
// String path = "file:///android_asset/bq.png";
Image image2 = Image.getInstance(InputStreamToByte(abpath));
PdfPCell cell8 = new PdfPCell();
// cell8.setFixedHeight(20);
// cell8.setImage(image2);
//
// cell8.disableBorderSide(1);
// cell8.disableBorderSide(2);
// cell8.disableBorderSide(4);
// cell8.disableBorderSide(8);
// cell8.setHorizontalAlignment(RIGHT);
cell8.setBorderWidth(1);
// cell8.setColspan(2);// 跨2列
cell8.setVerticalAlignment(Element.ALIGN_MIDDLE);
cell8.setHorizontalAlignment(Element.ALIGN_CENTER);
cell8.setImage(image2);
table.addCell(cell8);
PdfPCell cell9 = new PdfPCell();
cell9.setBorderWidth(1);
cell9.setVerticalAlignment(PdfPCell.ALIGN_MIDDLE);
cell9.setColspan(4);// 跨两列
cell9.setPhrase(new Paragraph("北汽服务问诊", fontCh