Как установить свой собственный холст в PdfDocument.Page - PullRequest
1 голос
/ 27 октября 2019

У меня есть объект mCanvas со всеми чертежами. Теперь я хочу использовать тот же холст в моем PdfDocument, чтобы сохранить его в виде файла PDF.

PdfDocument pdfDocument = new PdfDocument();
PageInfo pageInfo = new PageInfo.Builder(mCanvas.getWidth(),
                mCanvas.getHeight(), 1).create();
Page pdfPage = pdfDocument.startPage(pageInfo);

//pdfPage.setCanvas(mCanvas); <--- this is what I want to achieve

Возможно ли это с PdfDocument ?

1 Ответ

0 голосов
/ 29 октября 2019

Как упомянуто @CommonsWare в разделе комментариев, нет способа «воспроизвести» операции рисования, выполненные на холсте. Решение, которое решило мою проблему, приведено ниже.

Bitmap bitmap = mCanvas.getBitmap();
int width = bitmap.getWidth();
int height = bitmap.getHeight();

PdfDocument pdfDocument = new PdfDocument();
PdfDocument.PageInfo.Builder builder = 
    new PdfDocument.PageInfo.Builder(width, height, 1);
PdfDocument.PageInfo pageInfo = builder.create();
PdfDocument.Page pdfPage = pdfDocument.startPage(pageInfo);
Canvas pdfCanvas = pdfPage.getCanvas();

pdfCanvas.drawBitmap(bitmap, 0, 0, null);

pdfDocument.finishPage(pdfPage);
pdfDocument.writeTo(outputStream);
pdfDocument.close();

Короче говоря, вместо того, чтобы установить исходный холст в свой PdfDocument, я извлек растровое изображение исходного холста и нарисовал его в своих PdfDocument. холст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...