Конвертировать Android просмотр в PDF формата А4 - PullRequest
0 голосов
/ 02 мая 2020

У меня есть android приложение для построения резюме. Я хочу создать PDF-файл формата A4 с моей точки зрения. Вот как выглядит мой макет: вверху у меня есть верхняя панель приложений, а весь вид - в ящике. Основная часть, содержащая данные пользователя, инкапсулирована в nestedScrollView, который содержит несколько LinearLayout и TextView. На этом снимке экрана ниже я заполнил его фиктивными данными, но на самом деле я извлекаю данные из базы данных Firebase Realtime и отображаю их в пользовательском интерфейсе.

view

Я пытался понять решение iTextPdf и несколько вопросов подобного типа, которые задавались здесь, но я не смог найти что-то solid. Пожалуйста, помогите мне, это было бы очень полезно.

Также, пожалуйста, не закрывайте этот вопрос, указав причину, по которой этот вопрос не содержит кода. Это не потому, что у меня их нет. Я пытаюсь решить эту проблему с нуля. Я пытался описать свою проблему настолько, насколько мог.

Ответы [ 2 ]

0 голосов
/ 02 мая 2020

Есть много библиотек, которые конвертируют макеты в PDF, но давайте выберем популярную, чтобы мы могли найти ответы, если застряли.

Библиотеки, которые я перечислил, работают примерно так: они делают скриншот свой макет как растровое изображение и конвертируйте его в pdf.

- 1-е решение: iTextPDF https://github.com/itext/itext7 (новая версия).

проверьте это подробное руководство, которое рассматривает также случай создания скриншота скроллвью https://www.codeproject.com/Articles/989236/How-to-Convert-Android-View-to-PDF-2

и ответа на этот стекопоток { ссылка }

- 2-е решение: PdfMy XML библиотека https://github.com/HendrixString/Android-PdfMyXml, просто следуйте инструкциям в документации.

Это могут быть и другие решения, но это популярные.

Дайте Мне знать, если это работает для вас, а также, если вы застряли. Спасибо!

0 голосов
/ 02 мая 2020

попробуйте это:

создайте WebView и скопируйте в него текст вашего edittext:

webview.loadData(youredittext.gettext().tostring, "text/html", "UTF-8");

и конвертируйте webview в pdf с помощью следующей функции:

private void createWebPrintJob(WebView webView) {

PrintManager printManager = (PrintManager) this
        .getSystemService(Context.PRINT_SERVICE);

PrintDocumentAdapter printAdapter =
        webView.createPrintDocumentAdapter();

String jobName = getString(R.string.app_name) + " Print Test";

if (printManager != null) {
    printManager.print(jobName, printAdapter,
            new PrintAttributes.Builder().build());
}
}

после этого пользователь может выбрать размер страницы, например, A4

...