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

标签 android pdf xamarin xamarin.forms xamarin.android

我正在使用 Xamarin.android 并遵循了 this

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

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

我有那个代码:

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,但它询问用户将其保存在何处,我想将其保存在某个路径中。

这可能吗?

最佳答案

Save pdf without showing the user the print dialogue screen

据我所知,您无法在 Android 中实现此功能。

用户需要能够选择一些配置,例如选择要打印的打印机。因此,当您使用 printManager.Print() 方法时,将显示一个打印对话框。你可以在 android PrintManager Source code 中找到, PrintManager 类是 final(在 C# 中它是密封的),我们不允许覆盖此方法以防止对话框。

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

AOSP 问题跟踪器上有一个 Unresolved 问题:https://code.google.com/p/android/issues/detail?id=160908 .

关于android - 保存 pdf 而不向用户显示打印对话屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47039263/

相关文章:

android - 触发 Android 股票彩信应用程序发送待处理消息

java - Fragment 的 ListView 扩展 ListFragment 正在重复自己。知道出了什么问题吗?

android - 为什么toast消息在android 4.1操作系统包含移动不显示

ios - 在 iOS 上使用 Core Graphics 在 PDF 中嵌入超链接

c# - 如何使用 pdflib 删除 pdf 中的字符

c# - 隐藏在 Xamarin Forms Android 中时如何禁用单击 TabbedPage 菜单项?

android - 如何使用IDroid UI绑定(bind)API

python - 优化pdfminer

c# - 将列表传递给 RootElement c# 中的部分

ios - IOS8 Xamarin 替换中带有 Datepicker 的 UIActionSheet