Android打印作业会忽略PrintAttributes

CAA*_*CAA 5 android android-print-framework

我正在尝试实现或多或少有效的打印API。我可以使用api级别19中引入的打印框架将文件发送到Google Cloud Print应用程序并进行打印。但是如果我不必一直用手发送纸格式,那将是很好的,因为它以纸格式开始索引卡4x6,这不是我想要的,我想要A4。如果GCP应用程序会记住配置,我可能会接受它,但是我必须为每个单独的printjob设置它,这有点令人沮丧。

我发现我可以通过设置PrintAttributes来对此进行归档。但是,无论我将它们设置为什么,它始终是纸质格式的索引卡4x6。如果我在打印对话框中将格式手动设置为A4,则效果很好

PrintManager printManager = (PrintManager) ctx.getSystemService(Context.PRINT_SERVICE);

String jobName = "Jobname";

PrintAttributes.Builder builder = new PrintAttributes.Builder();
builder.setMediaSize(PrintAttributes.MediaSize.ISO_A4);
builder.setColorMode(PrintAttributes.COLOR_MODE_MONOCHROME);
PrintAttributes attr = builder.build();

printManager.print(jobName, new PrintDocumentAdapterForFiles(ctx, new File(filePath), jobName), attr );
Run Code Online (Sandbox Code Playgroud)

万一重要:打印机是Canon Pixma IP 110