MonoTouch打印本地PDF文件

时间:2011-06-03 12:59:51

标签: c# .net pdf xamarin.ios

我有一个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;

1 个答案:

答案 0 :(得分:1)

我一直喜欢做的事情(这在很大程度上取决于已部署的设备 - 在我的情况下,它是我控制的服务器)只是安装PDF打印机,然后就像打印任何其他类型的打印机一样简单文档。

BullZip之类的内容是免费的,允许您将打印的任何设置写入RunOnce.ini(xml)文件,以打印带有文件名设置的静音模式,等等。

如果您无法控制正在部署的系统,那么显然不是一个很好的解决方案,但如果您这样做,那么这个解决方案很简单。