使用andorid源生生成pdf的坑

  • 在使用andorid源生的生成pdf时,可以看看官网的使用,很简单的几个功能,并且可以生成对应的页面,暂时不知道要是实现将List的页面全部解出来的 要怎么设定高度(考虑:可以使用计算所有的子空间的高度(未验证))
  • 这次碰到最大的坑!!
    当页面中存在Imagerview的时候,而且你是使用LayoutInflater去反射出Lyaout布局时,在代码中动态紧挨在图片的时候不用使用!!!Glide加载图片,导出pdf的时候出现图片没有显示出来!!
    PdfDocument document = new PdfDocument();
        PdfDocument.PageInfo pg = new PdfDocument.PageInfo.Builder(getWindow().getWindowManager().getDefaultDisplay().getWidth(), getWindow().getWindowManager().getDefaultDisplay().getHeight(), 1)
                .create();
        String s1 = getExternalCacheDir().getAbsolutePath();
        View layoutInflater = getLayoutInflater().inflate(R.layout.layout_test_output_pdf, null);
        ImageView s5 = layoutInflater.findViewById(R.id.img);
        
        
        //错误的代码      
        //Glide.with(layoutInflater.getContext().getApplicationContext()).load(file).into(s5);
        //正确的代码
        Bitmap bitmap = BitmapFactory.decodeFile(s1 + "/address.jpeg");
        s5.setImageBitmap(bitmap);
        
        
        PdfDocument.Page page = document.startPage(pg);
        layoutInflater.measure(View.MeasureSpec.makeMeasureSpec(getWindowManager().getDefaultDisplay().getWidth(), View.MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(getWindowManager().getDefaultDisplay().getHeight(), View.MeasureSpec.EXACTLY));
        layoutInflater.layout(0, 0, layoutInflater.getMeasuredWidth(), layoutInflater.getMeasuredHeight());
        Canvas canvas = page.getCanvas();
        layoutInflater.draw(canvas);
        document.finishPage(page);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值