如何在Android Print Framework中将默认的“纵向方向”更改为横向?

时间:2016-10-14 12:05:33

标签: android android-print-framework

有没有办法在打印框架中将默认纵向预览更改为横向?

我在下面试过了 -

PrintAttributes attrib = new PrintAttributes.Builder()
.setMediaSize(PrintAttributes.MediaSize.NA_LETTER.asLandscape())
.setMinMargins(PrintAttributes.Margins.NO_MARGINS)
. build();

并在下面尝试过 -

PrintAttributes attrib = new PrintAttributes.Builder()
.setMediaSize(PrintAttributes.MediaSize.UNKNOWN_LANDSCAPE)
.setMinMargins(PrintAttributes.Margins.NO_MARGINS)
. build();

我注意到它没有将页面方向更改为横向

print settings

在上面的打印设置对话框中,如果我确实将方向更改为横向,则只有打印预览页面会将方向更改为横向。这可以通过编程方式完成吗?我希望在横向中进行默认预览。

2 个答案:

答案 0 :(得分:2)

我使用下面的代码:

PrintManager printManager = (PrintManager) this.getSystemService(Context.PRINT_SERVICE);
    String jobName = this.getString(R.string.app_name) + " Document";

    PrintAttributes attrib = new PrintAttributes.Builder()
            .setMediaSize(PrintAttributes.MediaSize.UNKNOWN_LANDSCAPE)
            . build();

    printManager.print(jobName, pda, attrib);

我的结果:

enter image description here

答案 1 :(得分:0)

您可以尝试一下,它对我有用:

  PrintAttributes attributes = new PrintAttributes.Builder()
        .setMediaSize(new PrintAttributes.MediaSize("ISO_A4", "android", 11690, 8270))
        .setResolution(new PrintAttributes.Resolution("pdf", "pdf", 600, 600))
        .setMinMargins(PrintAttributes.Margins.NO_MARGINS)
        .build();

您会注意到,我交换了MediaSize的高度和宽度以匹配横向A4尺寸。