android网络打印 生成pdf

本文介绍了如何在Android中利用Itext插件生成PDF,并将其转换为HTML,通过WebView进行打印预览,实现局域网内打印机的网络打印功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值