конвертировать макет таблицы Scrollview в PDF - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть этот макет таблицы под макетом представления прокрутки. Когда я конвертирую таблицу в pdf, она конвертирует только видимый экран, а не весь документ прокрутки. Я искал это, но не смог ничего найти. Любая помощь приветствуется. Я приложил свой код для создания pdf и его файл активности ниже.

Заранее спасибо.

private void createPdf(){
    WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
    Display display = wm.getDefaultDisplay();
    DisplayMetrics displaymetrics = new DisplayMetrics();
    this.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
    float height = displaymetrics.heightPixels ;
    float width = displaymetrics.widthPixels ;

    int convertHeight = (int) height, convertWidth = (int) width;

    PdfDocument document = new PdfDocument();


        PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(convertWidth, convertHeight, 1).create();
        PdfDocument.Page page = document.startPage(pageInfo);

        Canvas canvas = page.getCanvas();

        Paint paint = new Paint();
        canvas.drawPaint(paint);

        bitmap = Bitmap.createScaledBitmap(bitmap, convertWidth, convertHeight, true);

        paint.setColor(Color.BLUE);
        canvas.drawBitmap(bitmap, 0, 0, null);
        document.finishPage(page);

    // write the document content
        String targetPdf = Environment.getExternalStorageDirectory().getAbsolutePath() + "/FileName/";
        File fileDir;
        fileDir = new File(targetPdf);
        if (!fileDir.exists()) {
            fileDir.mkdirs();
        }

        File filePath = new File(fileDir.toString(), "file.pdf");
        try {
            System.out.println("File = " + filePath);
            document.writeTo(new FileOutputStream(filePath));

        } catch (IOException e) {
            e.printStackTrace();
            Toast.makeText(this, "Something wrong: " + e.toString(), Toast.LENGTH_LONG).show();
            System.out.println("Something went wrong: " + e.toString());
        }

        // close the document
        document.close();
    Toast.makeText(this, "PDF of the table is created!!!", Toast.LENGTH_SHORT).show();

}

Файл моей активности

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res-auto"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 tools:context=".TableView">


 <ScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/scrollView">

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/tableLayout"
        android:stretchColumns="*"
        android:shrinkColumns="*"
        >
    </TableLayout>

 </ScrollView>


</LinearLayout>
...