【问题标题】:Create multiple pages pdf创建多页pdf
【发布时间】:2021-11-30 01:40:05
【问题描述】:

我在 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();
}

【问题讨论】:

    标签: android pdf pdf-generation


    【解决方案1】:
     PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(convertWidth, convertHighet,1).create();
    

    你是否只提到第一个页面,所以你增加了数据存储在一个页面中所需的页面编号,所以使用任何循环来增加页面编号

    【讨论】:

      猜你喜欢
      • 2013-05-24
      • 1970-01-01
      • 2022-11-10
      • 2012-09-06
      • 2017-06-28
      • 2012-07-03
      • 2015-12-07
      • 2011-02-14
      • 1970-01-01
      相关资源
      最近更新 更多