2011-06-03 65 views
0

我有一個MonoTouch應用程序在本地生成一些PDF文件,然後將它們打印到網絡打印機。爲了實現這個目標,我最初只是給該項目添加了一個PDF資源,我可以嘗試打印,但是有一段時間。當我只打印HMTL或字符串值時,一切都很好,但打印PDF讓我失去了意義。調試時,它看起來應用程序正在獲取正確的URL。MonoTouch打印本地PDF文件

任何幫助將不勝感激,我的採樣代碼低於:

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

我一直喜歡做的(這取決於部署的設備非常多 - 在我的情況,這是我控制的服務器)是隻安裝一個PDF打印機,然後它的印刷一樣簡單任何其他類型的文件。

BullZip這樣的東西是免費的,並且允許您將打印的任何設置寫入RunOnce.ini(xml)文件,以使靜默模式打印文件名等設置。

如果你不能控制你部署的系統,顯然不是一個很好的解決方案,但是如果你這樣做的話,這個解決方案非常簡單。