我有一个MonoTouch应用程序,可以在本地生成一些PDF,然后将它们打印到网络打印机。为了实现这个目的,我最初只是将一个PDF资源添加到项目中,我可以尝试打印但是我有一点时间。当我只打印HMTL或字符串值时,一切都很好,但打印PDF让我迷失方向。调试时看起来应用程序正在获取正确的URL。
非常感谢任何帮助,我的采样代码如下:
public void PrintSomePDF ()
{
var printInfo = UIPrintInfo.PrintInfo;
printInfo.OutputType = UIPrintInfoOutputType.General;
printInfo.JobName = "Test: PDF Print";
string pdfFileName = "printthispdf_01.pdf";
NSUrl url = NSUrl.FromFilename(pdfFileName);
var printer = UIPrintInteractionController.SharedPrintController;
printer.PrintInfo = printInfo;
printer.PrintingItem = url.Path;
printer.ShowsPageRange = true;
printer.Present (true, (handler, completed, err) => {
if (!completed && err != null){
Console.WriteLine ("error");
}
});
}
我能够通过NSUrl传递给PrintingItem的方式解决问题。在我传递printer.PrintingItem = url.Path之前;这基本上只是传递了一串路径,而不是NSUrl的实际形状。
printer.PrintingItem = url;
答案 0 :(得分:1)
我一直喜欢做的事情(这在很大程度上取决于已部署的设备 - 在我的情况下,它是我控制的服务器)只是安装PDF打印机,然后就像打印任何其他类型的打印机一样简单文档。
BullZip之类的内容是免费的,允许您将打印的任何设置写入RunOnce.ini
(xml)文件,以打印带有文件名设置的静音模式,等等。
如果您无法控制正在部署的系统,那么显然不是一个很好的解决方案,但如果您这样做,那么这个解决方案很简单。