아래의 코드는 테스트 코드 입니다. 현재 화면 전체를 캡쳐를 할 수가 없어서 지금 계속 테스트 중에 중간 저장을 위해서 코드를 기록을 해 놓습니다.
wvPrint.loadUrl(Url);
wvPrint.enableSlowWholeDocumentDraw();
wvPrint.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;
}
@Override
public void onPageFinished(WebView view, String url) {
Log.i("deneb::", "page finished loading " + url);
float scale = wvPrint.getScale();
int height = (int) (wvPrint.getContentHeight() * scale + 0.5);
Bitmap bitmap = Bitmap.createBitmap(780, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
wvPrint.draw(canvas);
// 파일 저장
String strFilePath = context.getCacheDir().toString();
Log.d("deneb::", "경로 :: " + context.getCacheDir().toString());
File fileCacheItem = new File(strFilePath, "print_page.png");
OutputStream out = null;
try {
fileCacheItem.createNewFile();
out = new FileOutputStream(fileCacheItem);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
out.close();
double yPointLimit = Math.ceil(height / 780 );
int yPointLimit2 = (int) yPointLimit;
Log.d("deneb::", "몇장 ?? " + yPointLimit2);
int yPoint = 0;
for(int i = 0; i < yPointLimit2; i++) {
yPoint = yPoint + 780;
DenebPrinter.printpicCode(bitmap, context, yPoint);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
});
현재 코드자체가 정리가 되지 않기 때문에 별로 도움이 되지 않기 때문에 기록형식으로만 봐주시기 바랍니다.