У меня проблема с созданием файла PDF в моем приложении для Android с использованием ITextPdf.Я пытаюсь преобразовать линейную диаграмму MPAndroidChart в растровое изображение и сохранить ее в файл PDF.
Вот код метода saveToPdf ():
private void saveToPdf() {
Bitmap bitmap = saveChartToBitmap();
Document doc = new Document();
File pdfCreated = new File(getBaseContext().getFilesDir() , "PDFCreated.pdf");
try {
PdfWriter.getInstance(doc, new FileOutputStream(pdfCreated));
doc.open();
Image image = Image.getInstance(bitmap);
doc.newPage();
doc.add(image);
Toast.makeText(getBaseContext(), "Pdf created", Toast.LENGTH_SHORT).show();
} catch (FileNotFoundException | DocumentException e) {
e.printStackTrace();
} finally {
doc.close();
}
И мой метод saveChartToBitmap ():
private Bitmap saveChartToBitmap() {
if (lineChart.getMeasuredHeight() <= 0) {
lineChart.measure(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
Bitmap b = Bitmap.createBitmap(lineChart.getMeasuredWidth(), lineChart.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
lineChart.layout(0, 0, lineChart.getMeasuredWidth(), lineChart.getMeasuredHeight());
lineChart.draw(c);
return b;
} else {
return null;
}
}
Не знаю, неправильно ли что-то с моим преобразованием в bitmat или созданием объекта Image, но не могу понять это.Я получаю: в документе нет ошибок страниц.Поэтому мне нужен совет.
Заранее спасибо.