Android Print Framework - 不缩放/适合打印

bee*_*eeg 5 printing pdf android

有没有办法强制Android的打印框架在打印时不重新缩放PDF,就像Google Cloud Print的"No Fitting"选项一样?

我正在编写一个应用程序,其中包括打印PDF文件的功能.用户可以选择通过Google Cloud Print的Web界面进行打印,也可以通过Android的本机打印服务框架进行打印(4.4+以上).对于后者,我使用这里描述的方法,它将原始PDF直接写入print框架提供的文件描述符.两种打印选项都运行正常.

但是,当我使用云打印时,我可以指定"无配件"选项,这会导致PDF按原样打印,没有强制边距或缩放.我无法使用Android的原生框架找到复制方法 - 尽管将布局设置为NO_MARGINS,但结果始终是与云打印副本相比缩小的打印输出.以下是我一直使用的打印属性:

        PrintAttributes attribs = new PrintAttributes.Builder()
        .setMediaSize(PrintAttributes.MediaSize.ISO_A4.asLandscape())
        .setMinMargins(PrintAttributes.Margins.NO_MARGINS)
        .setColorMode(PrintAttributes.COLOR_MODE_MONOCHROME)
        .build();
Run Code Online (Sandbox Code Playgroud)

以前有人遇到过这个问题吗?你是怎么解决的?

谢谢!