2016-05-23 173 views
0

你好,我想在Crosswalk中從webview創建PDF,但我沒有找到任何支持方法如何做。目前我使用這個選項來創建位圖Android如何從Crosswalk webview創建PDF?

How can I capture the whole view into a Bitmap when using crosswalk to display webpage?

,然後我試圖利用iText位圖轉換LIB How I can convert a bitmap into PDF format in android作爲輸出我得到空白的PDF(黑頁)。

這裏是位圖的代碼:

private void createBitmap (XWalkView view) { 
    String pathToFile = Environment.getExternalStorageDirectory() +"/bitmap.jpg"; 
    view.setDrawingCacheEnabled(true); 
    view.buildDrawingCache(true); 
    Bitmap btmp = view.getDrawingCache(); 
    Canvas canvas = new Canvas(btmp); 
    Paint paint = new Paint(); 
    int height = btmp.getHeight(); 
    canvas.drawBitmap(btmp, 0, height, paint); 
    view.draw(canvas); 

    try { 
     OutputStream fOut = null; 
     File file = new File(pathToFile); 
     fOut = new FileOutputStream(file); 
     btmp.compress(Bitmap.CompressFormat.JPEG, 50, fOut); 
     fOut.flush(); 
     fOut.close(); 
     btmp.recycle(); 
     view.setDrawingCacheEnabled(false); 
     view.destroyDrawingCache(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
} 

我只需要提示:)。非常感謝。這是我的第一個問題,我爲錯別字道歉

回答

0

XWalkView使用獨立的SurfaceView(或TextureView)作爲其輸出目標.XWalkView的繪圖或onDraw不會畫任何東西。所以你不能依靠它來繪製一個pdf文件。

作爲一種解決方法,還有另一個XWalkView.captureBitmapAsync,可用於將可見網頁捕獲到位圖中。下面是關於如何使用它的一個簡單的指南: 1),實現XWalkGetBitmapCallback

import org.xwalk.core.XWalkGetBitmapCallback; 
    class XWalkGetBitmapCallbackImpl extends XWalkGetBitmapCallback { 
    public XWalkGetBitmapCallbackImpl() { 
     super(); 
    } 
    //Note: onFinishGetBitmap happens at the same thread as captureBitmapAsync, usually the UI thread. 
    @Override 
    public void onFinishGetBitmap(Bitmap bitmap, int response) { 
     //if response == 0, save this bitmap into a jpg file //otherwise errors. 
    } 
} 

2),開始在UI線程捕獲:

private void captureContent() { 
    if (xWalkView == null) return; 
    mXWalkGetBitmapCallback = new XWalkGetBitmapCallbackImpl(); 
    xWalkView.captureBitmapAsync(mXWalkGetBitmapCallback); 
} 

更多細節在這裏:https://crosswalk-project.org/jira/browse/XWALK-5110

+0

謝謝你幫了我很多:) –