次のように PrintManager を使用しています(webviewがロードされている場合):
PrintManager printManager = (PrintManager) getSystemService(Context.PRINT_SERVICE);
PrintDocumentAdapter printAdapter = webView.createPrintDocumentAdapter(jobName));
printManager.print(jobName, printAdapter, new PrintAttributes.Builder().build());
保存ボタンをクリックすると、HTMLがpdfとして保存されます。このプロセスが非常に高速に実行されると、つまりプレビューの読み込み中に、「残念ながら印刷スプーラーが停止しました」という例外が発生します。
process: com.android.printspooler, PID: 5705
java.lang.IllegalArgumentException: end cannot be less than zero.
at android.print.PageRange.<init>(PageRange.java:50)
at com.android.printspooler.util.PageRangeUtils.asAbsoluteRange(PageRangeUtils.java:199)
at com.android.printspooler.ui.PrintActivity$DocumentTransformer.computePagesToShred(PrintActivity.java:2620)
at com.android.printspooler.ui.PrintActivity$DocumentTransformer.<init>(PrintActivity.java:2496)
at com.android.printspooler.ui.PrintActivity.transformDocumentAndFinish(PrintActivity.java:1733)
at com.android.printspooler.ui.PrintActivity.-wrap15(PrintActivity.java)
at com.android.printspooler.ui.PrintActivity$4.run(PrintActivity.java:620)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
この例外を解決またはキャッチするための提案