如何直接在Android上打印?

时间:2017-08-03 12:20:17

标签: android xamarin printing

我正在做一个只需要一步打印的项目,只需单击打印按钮即可直接打印文档。我找到了一个测试项目,当我点击打印按钮时,它会打开第二张图片中显示的页面(我不希望这个显示)。我想如果在我进行测试打印并稍后使用这些设置时可以将设置保存到文件中。(在图像中说打印pdf等忽略它,目前我没有连接打印机)

https://i.stack.imgur.com/hcZDW.png

https://i.stack.imgur.com/yNTSA.png

import matplotlib as plt

fig,ax1=plt.subplots()
ax1.plot(Leistung)
ax1.set_xlabel('Messzeiten [s]')
ax1.set_ylabel(r'Leistung $P_1 + P_2 + P_3$ [W]')
ax1.plot(meanL,'r')
ax2=ax1.twinx()
ax2.plot(tmc,rolmean,'orange')

plt.tick_params(direction="in")
plt.tight_layout()
plt.show()

1 个答案:

答案 0 :(得分:0)

  

我找到了一个测试项目,当我点击打印按钮时,它会打开第二张图片中显示的页面(我不希望这个显示)。

无法隐藏打印对话框,因为它是android框架的一部分。

参考PrintManager.print method的文档:

  

...   注意:调用此方法将带来打印对话框,系统将连接到提供的PrintDocumentAdapter ....

还提到PrintManager.java的源代码:

public PrintJob print(String printJobName, PrintDocumentAdapter documentAdapter,
        PrintAttributes attributes) {
    ...
    PrintDocumentAdapterDelegate delegate = new PrintDocumentAdapterDelegate(
            (Activity) mContext, documentAdapter);
    try {
        Bundle result = mService.print(printJobName, delegate,
                attributes, mContext.getPackageName(), mAppId, mUserId);
        if (result != null) {
            PrintJobInfo printJob = result.getParcelable(EXTRA_PRINT_JOB);
            //call the dialog
            IntentSender intent = result.getParcelable(EXTRA_PRINT_DIALOG_INTENT);
            if (printJob == null || intent == null) {
                return null;
            }
            ...
        }
    ...
}

正如您所看到的,PrintManager.print将发送一个意图EXTRA_PRINT_DIALOG_INTENT,它将带来对话框。