zoukankan      html  css  js  c++  java
  • PdfDocument生成PDF,总是产生空文件

    利用PdfDocument生成PDF文件,当内容有变化时,就会产生空文件,无论是page.getCanvas().drawText("12345", 20, 50, paint);

    还是

    view1.draw(canvas);


    代码如下:
    public void actionGenPdf(View view)
    {
        // 创建一个PDF文本对象
        PdfDocument document=new   PdfDocument();
        //创建当前页的信息,Builder中的参数表示页面的宽高,以及第几页

        PdfDocument.PageInfo pageInfo=new PdfDocument.PageInfo.Builder(595, 843,1).create();

        // 生成当前页
        PdfDocument.Page page=document.startPage(pageInfo);

        // 在当前页上画画,即把所需要的view的视图画到page的画布上
        Paint paint = new Paint();
        paint.setColor(Color.BLACK);
        paint.setTextSize(20);
        Canvas canvas = page.getCanvas();

        /*for(int i = 0; i < 10; i++) {
            String sTmp = "12345";
            page.getCanvas().drawText("12345", 20, 50, paint);
            canvas.translate(0, 30);
        }*/
        TextView view1 = new TextView(this);//getContentView();
        view1.layout(0, 0, 200, 200);
        view1.setText("Hello");
        TextView view2 = new TextView(this);//getContentView();
        view2.layout(0, 0, 200, 200);
        String sTmp = "Good"+Integer.toString(10);
        final String ss = sTmp;
        view2.setText(ss);
        view1.draw(canvas);
        canvas.translate(0, 200);
        view2.draw(canvas);
        canvas.save();

        /*for(int i = 0; i < 10; i++) {
            TextView view1 = new TextView(this);//getContentView();
            view1.layout(0, 0, 200, 200);
            view1.setText("Hello"+Integer.toString(i));
            Toast.makeText(this,"Hello"+Integer.toString(i), Toast.LENGTH_SHORT).show();
            view1.draw(canvas);
            // Move the canvas for the next view.
            canvas.save();
            canvas.translate(0, 50);
        }*/
        document.finishPage(page);

        // 输出到文件
        try {
            String filePath = "/sdcard/";
            //String filePath = Environment.getExternalStoragePublicDirectory("").getAbsolutePath();
            //String filePath = Environment.getExternalStorageDirectory().getAbsolutePath();
            String fileName = "easy.pdf";
            File file = new File(filePath, fileName);
            FileOutputStream outputStream = new FileOutputStream(file);
            document.writeTo(outputStream);
            PubUtils.notifySystemToScan(this, filePath + fileName);
            Toast.makeText(this, "导出完成", Toast.LENGTH_SHORT).show();
            SoundUtils.getInstance().playSuccess();
        } catch (IOException e) {
            e.printStackTrace();
            Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show();
        }

    }

  • 相关阅读:
    如何把pdf文档转化为word
    Win7系统中wmiprvse.exe占用CPU高如何解决
    Visual studio加载项目时报错 尚未配置为Web项目XXXX指定的本地IIS,需要配置虚拟目录。解决办法。
    SQL Server新增用户并控制访问权限设置。
    vs2013 中已经添加了引用,编译还是提示没有添加引用
    vue-cli中引入jquery方法
    vue-vuex安装
    vue2.0项目结构和打包发布
    从(0)新开始vue2.0【安装】
    js判断网络连接情况:navigator.onLine
  • 原文地址:https://www.cnblogs.com/CipherLab/p/11824257.html
Copyright © 2011-2022 走看看