Я пытаюсь распечатать PDF-файл на принтере Bluetooth, я пытаюсь преобразовать PDF в растровое изображение, затем растровое изображение в байтовый массив и отправить его через Bluetooth, пока я былвозможность печати растровых изображений без проблем, но когда дело доходит до PDF, напечатанное изображение выглядит очень наклонным, это действительно странный результат, я попытался преобразовать PDF в растровое изображение, а затем сохранить его в формате PNG и получившийся файлвыглядит вполне нормально, но не в печатной версии.
Вот код, который я использую для преобразования PDF в растровое изображение.
public static Bitmap fileToBitmap(File file) {
try {
PdfRenderer pdfRenderer = new PdfRenderer(ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY));
PdfRenderer.Page page = pdfRenderer.openPage(0);
int pdfWidth = page.getWidth();
int pdfHeight = page.getHeight();
Bitmap pdfBitmap = Bitmap.createBitmap(pdfWidth, pdfHeight, Bitmap.Config.ARGB_8888);
page.render(pdfBitmap, null, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY);
page.close();
pdfRenderer.close();
final Bitmap finalBitmap = Bitmap.createBitmap(pdfBitmap.getWidth(), pdfBitmap.getHeight(), pdfBitmap.getConfig());
Canvas canvas = new Canvas(finalBitmap);
canvas.drawColor(Color.WHITE);
canvas.drawBitmap(pdfBitmap, 0, 0, null);
return finalBitmap;
} catch (Exception ex) {
ex.printStackTrace();
return null;
}
}
Я использую белое растровое изображение в качестве фона, так какпрозрачность не поддерживается.Я уже попробовал несколько формул для правильного масштабирования растрового изображения, чтобы оно соответствовало бумаге, при этом на некоторых из них оно печатается меньше, чем на бумаге, поэтому я полагаю, что проблема не должна быть в том, что принтер неправильно масштабирует его или что-то в этом роде.
Вот снимок экрана с тем, как выглядит PNG, записанный на диске (он конвертируется из растрового изображения, конвертированного из PDF, поэтому печать должна выглядеть так, только не будет). Снимок экрана
Вот как выглядит напечатанный PDF: Печать Вы можете видеть, что изображение Panda, которое я взял у Google, выглядит нормально.
Вотпристальный взгляд.Если вы посмотрите очень внимательно, вы увидите, что PDF-файл на самом деле печатается, но он выглядит сильно наклоненным, в некоторых случаях вы даже можете увидеть напечатанный логотип, но опять же он выглядит наклонным. Пристальный взгляд
Модель принтера: Sunmi V1s-G.Версия Android: 6.0 targetSdkVersion 28 minSdkVersion 21
Заранее спасибо.