PdfDocument安卓版的10个突破性变化

问题描述 投票:0回答:1

我在新的Android 10中使用PdfDocument生成的pdf有问题,输出文件不正确,在其他Android版本中,没有问题。

我是这样生成每一页的

View contentView = pageViewList.get(i);

        PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(width, height, i + 1).create();

        // Start a page
        PdfDocument.Page page = pdfDocument.startPage(pageInfo);

        // Draw view on the page
        Canvas pageCanvas = page.getCanvas();
        int pageWidth = pageCanvas.getWidth();
        int pageHeight = pageCanvas.getHeight();
        int measureWidth = View.MeasureSpec.makeMeasureSpec(pageWidth, View.MeasureSpec.EXACTLY);
        int measuredHeight = View.MeasureSpec.makeMeasureSpec(pageHeight, View.MeasureSpec.EXACTLY);
        contentView.measure(measureWidth, measuredHeight);
        contentView.layout(0, 0, pageWidth, pageHeight);
        contentView.draw(pageCanvas);

        // Finish the page
        pdfDocument.finishPage(page);

enter image description here

android pdf-generation
1个回答
0
投票

这个问题似乎与TypedValue.applyDimension有关,它返回了一个错误的值。

    pageWidth = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_MM, 210, displayMetrics);
    pageHeight = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_MM, 297, displayMetrics);

所以和PdfDocument无关。

© www.soinside.com 2019 - 2024. All rights reserved.