Хорошо, я продолжил проект и использовал следующий метод: при создании PDF-файла я поместил слово «Ответ» в верхнем левом углу с серым прямоугольником, окружающим его, нарисованным с помощью drawRect (). Затем перед фактической печатью я использовал следующий код внутри класса PrintDocumentAdapter (), чтобы проверить, является ли цвет пикселя 0,0 серым или нет.
@Override
public void onStart() {
if (parcelFileDescriptor != null) {
try {
pdfRenderer = new PdfRenderer(parcelFileDescriptor);
} catch (IOException e) {
e.printStackTrace();
}
}
int tempTotal = pdfRenderer.getPageCount();
Bitmap[] tempBitmap = new Bitmap[tempTotal];
finalTotal = tempTotal;
for (int pageNum = 0; pageNum < tempTotal; pageNum++) {
PdfRenderer.Page tempPage = pdfRenderer.openPage(pageNum);
tempBitmap[pageNum] = Bitmap.createBitmap(WS_WIDTH, WS_HEIGHT, Bitmap.Config.ARGB_8888);
tempPage.render(tempBitmap[pageNum], null, null, PdfRenderer.Page.RENDER_MODE_FOR_PRINT);
if (tempBitmap[pageNum].getPixel(0, 0) == Color.GRAY) {
finalTotal--;
}
tempPage.close();
}
}
Он работает нормально. По крайней мере, не должно вызывать проблем, если пользователи только пытаются для печати файлов PDF, созданных с помощью моего приложения.: P
Скажите, знаете ли вы, как это лучше сделать. Спасибо!