Для создания PDF есть библиотека iText, написанная на Java, начиная с версии 5 распространяющаяся по лицензии AGPL.
Для создания отчета в виде таблицы для Android я использовал версию 5.5.10:
| 
					 1  | 
						implementation 'com.itextpdf:itextg:5.5.10'  | 
					
Но с отображением кириллицы есть нюанс. Нужно загрузить шрифт (из assets, например) и правильно его установить.
Загружаем:
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19  | 
						private static BaseFont baseFont = loadBaseFont("/assets/times-roman.ttf");  private static Font font = new Font(baseFont, 9, Font.NORMAL, BaseColor.BLACK); /** * Загружаем шрифт из .ttf файла * @param fontName Путь к файлу * @return */ private static BaseFont loadBaseFont(String fontName) { BaseFont baseFont= null; try { baseFont = BaseFont.createFont(fontName, BaseFont.IDENTITY_H, BaseFont.EMBEDDED); } catch (DocumentException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return baseFont; }  | 
					
Устанавливаем. Вот так не получится:
| 
					 1 2  | 
						Phrase phrase = new Phrase(text);  phrase.setFont(font);  | 
					
Нужно так (указывать в конструкторе):
| 
					 1  | 
						Phrase phrase = new Phrase(text, font);  | 
					
Тоже самое и с Paragraph:
| 
					 1  | 
						Paragraph paragraph = new Paragraph(text, font);  | 
					
Приветствую.
Почему код работает только когда компилируешь debug версию приложения а в releas версии пустые места рисует