Повысить качество текста с помощью краски
Мне нужно создать PDF-файлы на хинди, и я использую iTextg для этой цели. Чтобы "печатать" на хинди, я использую статический макет Android для преобразования текста в растровое изображение. Однако я получаю очень плохое качество текста.
Мой код выглядит следующим образом
public Bitmap textAsBitmap(String text, float textSize, float stroke, int color, int align) {
//All these flags were added after desperate attempts
TextPaint paint = new TextPaint(Paint.ANTI_ALIAS_FLAG | Paint.HINTING_ON | Paint.LINEAR_TEXT_FLAG | Paint.SUBPIXEL_TEXT_FLAG);
paint.setTextSize(textSize);
paint.setColor(color);
paint.setStrokeJoin(Paint.Join.ROUND);
paint.setStrokeWidth(stroke);
paint.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.NORMAL));
float baseline = (int) (-paint.ascent() + 3f); // ascent() is negative
Layout.Alignment mAlignment;
if (align == Element.ALIGN_CENTER)
mAlignment = Layout.Alignment.ALIGN_CENTER;
else if (align == Element.ALIGN_RIGHT)
mAlignment = Layout.Alignment.ALIGN_OPPOSITE;
else mAlignment = android.text.Layout.Alignment.ALIGN_NORMAL;
StaticLayout staticLayout = new StaticLayout(text, 0, text.length(),
paint, 435, mAlignment, 1.0f, 1.0f, false);
Bitmap image = Bitmap.createBitmap(staticLayout.getWidth(),
staticLayout.getHeight() + 2, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(image);
canvas.drawColor(Color.WHITE);
canvas.drawBitmap(image, 5, 5, paint);
staticLayout.draw(canvas);
return image;
}
Помогите мне, так как позже эти PDF-файлы необходимо распечатать.