簡體   English   中英

創建多頁pdf

[英]Create multiple pages pdf

我在android中成功創建了PDF,但它在一頁上顯示數據,但我在布局中使用scrollView意味着我有很多行的數據。 所以如果我有小數據,那么它看起來很酷,但是如果我有大數據,那么它會縮小數據並將其設置在一個頁面上,它看起來很擁擠,所以我想根據數據要求自動創建頁面。

這是我的點擊:-

downBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            bitmap = loadBitmapFromView(scrollLayout, scrollLayout.getWidth(), scrollLayout.getHeight());
            createPdf();
        }
    });

這是 createpdf 方法:-

private void createPdf(){
    WindowManager wm = (WindowManager) getActivity().getSystemService(Context.WINDOW_SERVICE);
    DisplayMetrics displaymetrics = new DisplayMetrics();
    getActivity().getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
    float hight = displaymetrics.heightPixels ;
    float width = displaymetrics.widthPixels ;
    int convertHighet = (int) hight, convertWidth = (int) width;
    PdfDocument document = new PdfDocument();
        PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(convertWidth, convertHighet,1).create();
        PdfDocument.Page page = document.startPage(pageInfo);
        Canvas canvas = page.getCanvas();
        Paint paint = new Paint();
        canvas.drawPaint(paint);
        bitmap = Bitmap.createScaledBitmap(bitmap, convertWidth, convertHighet, true);
        paint.setColor(Color.BLUE);
        canvas.drawBitmap(bitmap, 0, 0 , null);
        document.finishPage(page);     
    @SuppressLint("SdCardPath") String targetPdf = "/sdcard/pdfexample.pdf";
    File filePath;
    filePath = new File(targetPdf);
    try {
        document.writeTo(new FileOutputStream(filePath));
    } catch (IOException e) {
        e.printStackTrace();
        Toast.makeText(getContext(), "Something wrong: " + e.toString(), Toast.LENGTH_LONG).show();
    }
    document.close();
    Toast.makeText(getContext(), "You can save your pdf", Toast.LENGTH_SHORT).show();
    openGeneratedPDF();
}
 PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(convertWidth, convertHighet,1).create();

您是否只提到 pageno one,因此您增加了數據所需的 page no 以存儲在一頁中,因此請使用任何循環來增加 page no

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM