Макет для PdfDocument - PullRequest
       7

Макет для PdfDocument

0 голосов
/ 11 ноября 2018

Я немного огляделся и получил приличное понимание того, как создать PDF-файл с помощью встроенных инструментов Android. Я все еще немного запутался в том, как должен быть структурирован xml / view. Потому что для меня это никогда не загружается. Я начну с XML. который показан ниже

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:id="@+id/dh_pdf_viewer_root"
         xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_width="match_parent"
         android:layout_height="match_parent">

<com.duethealth.lib.pdfviewer.ui.PdfDocumentView
    android:id="@+id/dh_pdf_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

<TextView
    android:id="@+id/dh_pdf_page_counter"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|center_horizontal"
    android:layout_margin="@dimen/dh_padding_default"
    android:background="@color/dh_color_background_75"
    android:gravity="center"
    android:padding="@dimen/dh_padding_default"
    android:textAppearance="@style/DuetHealth.TextAppearance.ListLine2"/>

<include layout="@layout/dh_include_loading_50"/>

Так что TextView внизу используется для отображения счетчика моей страницы (если это необходимо), мне не нужно расширять ViewPager, он просто заполнитель.

public class PdfDocumentView extends ViewPager {
public void writePdf(File file) {

    PdfDocument document = new PdfDocument();

    PageInfo pageInfo = new PageInfo.Builder(300, 300, 1).create();

    Page page = document.startPage(pageInfo);

    View content = findViewById(R.id.dh_pdf_view);
    content.measure(800, 480);
    content.layout(0, 0, 800, 480);

    content.draw(page.getCanvas());

    document.finishPage(page);

    try {
        FileOutputStream fileOutputStream = new FileOutputStream(file.getPath());
        document.writeTo(fileOutputStream);
        document.close();
        fileOutputStream.close();
    } catch (IOException e) {
        Timber.e(e, "Error writing PDF");
    }

}

Я не понимаю, какую ViewGroup я должен расширять для PdfDocumentView или весь документ может просто войти в ImageView или что-то еще? Когда я прохожу DEBUG, кажется, что все работает, PDF успешно извлекается из URL в поток байтов, затем записывается в файл, а затем в память, и ошибок нет. Кажется, моя проблема где-то с самим видом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...