私は pdf 印刷アプリに取り組んでおり、android PrintDocumentAdapter を使用してページ範囲を設定するように求められたときに行き詰まりました。このようにAndroid APIを使用してページ範囲を設定しています
this.printManager.print(FilenameUtils.getName(pdfPath),
new PrintDocumentAdapter() {
@Override
public void onWrite(PageRange[] pages,
ParcelFileDescriptor destination,
CancellationSignal cancellationSignal,
WriteResultCallback callback) {
OutputStream output = new FileOutputStream(destination
.getFileDescriptor());
InputStream pdfInStream = null;
try {
pdfInStream = new FileInputStream(
PdfPrint.this.pdfPath);
IOUtils.copy(pdfInStream, output);
callback.onWriteFinished(new PageRange[] {new PageRange(0, 1), new PageRange(2, 4)});
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
output.flush();
pdfInStream.close();
output.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
それでも印刷ダイアログには「すべて」オプションが表示され、ここで範囲を手動で設定することもできます。しかし、プログラムでページ範囲を設定しているため、この動作を制限したいと思います。ダイアログは、以前に設定されたページ範囲で表示され、それらの特定のページのみを印刷する必要があります。この「ページ範囲の手動選択」を無効にして、印刷ダイアログの表示時にページ範囲を設定する方法はありますか。私を助けてください