1

私は 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();
                        }
                    }

                }

それでも印刷ダイアログには「すべて」オプションが表示され、ここで範囲を手動で設定することもできます。しかし、プログラムでページ範囲を設定しているため、この動作を制限したいと思います。ダイアログは、以前に設定されたページ範囲で表示され、それらの特定のページのみを印刷する必要があります。この「ページ範囲の手動選択」を無効にして、印刷ダイアログの表示時にページ範囲を設定する方法はありますか。私を助けてください

4

1 に答える 1