Я пытаюсь экспортировать текст в PDF-документ, используя стандартный класс PDFdocument в Android.Код создает PDF-файл, но в тексте, который я пишу в PDF-файл, загадочные пробелы наполовину заключены в слова.
Попытка с использованием параметра canvas.drawText и параметра drawItemn.Оба дают одинаковый результат.Кодовая строка проблемы находится почти внизу примера кода ниже.
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(mPageWidth, mPageHeight, pageNr).create();
PdfDocument.Page page = doc.startPage(pageInfo);
Memory memory = mMemoryData.get(pageNr);
Canvas canvas = page.getCanvas();
TextPaint paint = new TextPaint();
paint.setColor(Color.BLACK);
//Header
Yposition = drawItem( canvas,
paint,
18,
true,
Xposition,
Yposition,
memory.getTitle() );
//line
Yposition += 14; //Extra offset to get some space between the text and line
paint.setColor( ContextCompat.getColor(this, R.color.default_Accent) );
canvas.drawLine( Xposition, Yposition, pageInfo.getPageWidth() - Xposition, Yposition, paint );
Yposition += 20;
paint.setColor(Color.BLACK);
paint.setTextSize(10);
// **this is the line that gives the problem**
canvas.drawText(memory.getText(),Xposition, Yposition, paint);
doc.finishPage(page);
Результат этого действия:
![screen capture of PDF](https://i.stack.imgur.com/Wm1Fl.jpg)
На первый взгляд это выглядит нормально, но если вы немного увеличите или увеличите масштаб, скопировав / вставив текст в блокнот (или что-то еще), вы получите следующее:
Нет, попробуйте это
Вместо проблемной строки я также попытался это сделать:
drawItem( canvas, paint, 10, false, Xposition, Yposition, memory.getText() );
Это имеет некоторые преимущества, особенно для более крупного текста, но с другой - в том, что оно создает ту же проблему.
У кого-нибудь есть идеи, как это решить?