Android 保存pdf而不向用户显示打印对话框屏幕

Android 保存pdf而不向用户显示打印对话框屏幕,android,pdf,xamarin,xamarin.forms,xamarin.android,Android,Pdf,Xamarin,Xamarin.forms,Xamarin.android,我用的是Xamarin.android,我跟着 我想将打印保存到特定路径,而不向用户显示对话屏幕 如何在不询问用户的情况下说出要保存的路径 我有这样的密码: myWebView = new Android.Webkit.WebView(this.Context); var printManager = (Android.Print.PrintManager)Forms.Context.GetSystemService(Android.Content.Context.PrintService);

我用的是Xamarin.android,我跟着

我想将打印保存到特定路径,而不向用户显示对话屏幕

如何在不询问用户的情况下说出要保存的路径

我有这样的密码:

myWebView = new Android.Webkit.WebView(this.Context);
var printManager = (Android.Print.PrintManager)Forms.Context.GetSystemService(Android.Content.Context.PrintService);
var text = new ContractHTML() { Model = new Model.Model() { img = null } };

myWebView.LoadDataWithBaseURL("file:///android_asset/", text.GenerateString(), "text/html", "UTF-8", null);

string fileName = "MyPrint_" + Guid.NewGuid().ToString() + ".pdf";
var printAdapter = myWebView.CreatePrintDocumentAdapter(fileName);
Android.Print.PrintJob printJob = printManager.Print("MyPrintJob", printAdapter, null);
这段代码正在运行并生成pdf,但它会询问用户在哪里保存它,我想将它保存在某个路径中

可能吗

保存pdf而不向用户显示打印对话框屏幕

AFAIK您无法在Android中实现此功能。

用户需要能够选择一些配置,例如选择要打印的打印机。因此,当您使用
printManager.Print()
方法时,将显示一个打印对话框。您可以发现,在android中,
PrintManager
类是final(在C#中是密封的),我们不允许重写此方法来阻止对话框

当您从
活动执行
printManager.Print(“MyPrintJob”,printAdapter,null)
方法时,它会启动
PrintJob
,并会弹出系统打印UI。这是由Android打印框架完成的,我们不能使用平台API静默打印


AOSP问题跟踪器上有一个未解决的问题:。

在广泛搜索之后,我使用这个GitHub项目来解决这个问题。我能够在用户不知情的情况下默默地打印文档

开发人员似乎能够将一些类添加到
android.print
包中以访问私有成员,从而实现了这一点


Shen不,实际上我可以创建一个printAdapter覆盖,并且可以创建一个pdf文件,而无需打印对话,但这只保存了一小部分视图,更准确地说,我之前显示了一个WebView,它只保存了我正在查看的部分,其余的只是一个blanc页面。所以我认为这是可能的,但无法实现yet@micaelcunha,我认为重新设计整个自行车来避免对话不是一个好主意。@YorkShen,这与好坏无关,都是客户的要求,你可以做,也可以通过。顺便说一句,有现实生活中的应用程序在做这项工作,我们不知道他们究竟如何处理它,或者解决方案是用于工业用途的(不适用于小企业)。