安卓 android原生+h5wifi打印
在这里插入代码片
//由于项目需求我这里做的是先用pdf存到本地再去打印
pdfFilePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/test.pdf";
//这里是结合webview放到webview里面
public void printPDF () {
boolean hasPermission =
ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PermissionChecker.PERMISSION_GRANTED;
if (! hasPermission) {
if (Build.VERSION.SDK_INT > 22) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 101);
} else {
Toast.makeText(BrowserActivity.this, "请打开读写权限", Toast.LENGTH_SHORT).show();
}
return;
}
webViewToPdf();
}
private void webViewToPdf() {
//创建DexMaker缓存目录
try {
File pdfFile = new File(pdfFilePath);
if (pdfFile.exists()) {
pdfFile.delete();
}
pdfFile.createNewFile();
descriptor = ParcelFileDescriptor.open(pdfFile, ParcelFileDescriptor.MODE_READ_WRITE);
// 设置打印参数
PrintAttributes.MediaSize isoA4 = PrintAttributes.MediaSize.ISO_A4;
PrintAttributes attributes = new PrintAttributes.Builder()
.setMediaSize(isoA4)
.setResolution(new PrintAttributes.Resolution("id", Context.PRINT_SERVICE, 240, 240))
.setColorMode(PrintAttributes.COLOR_MODE_COLOR)
.setMinMargins(PrintAttributes.Margins.NO_MARGINS)
.build();
// 计算webview打印需要的页数
int numberOfPages = (int) ((viewMain.getContentHeight() * 240 / (isoA4.getHeightMils())));
ranges = new PageRange[]{new PageRange(