1
無論我選擇哪臺打印機,我得到「打印作業失敗:不支持的文件格式‘應用程序/ PDF’iPhone 4.2的AirPrint打印作業失敗
我試圖打印僅適用於HP打印機
。我看到的代碼沒有地方改變輸出類型。
我使用UISimpleTextFormatter格式化字符串。
不知道如何獲得ARO這一個。
編輯:下面的代碼是從米格爾的例子中直接找到的。唯一的區別是,我嘗試使用markupformatter來查看它是否以不同於application/pdf的格式輸出。
打印對話框出現在HP打印機列表中,我選擇了打印機,但沒有打印出來,並且在調試模式下,記錄了頂部指定的錯誤。
除了UIPrintInfoOutputType.General,我也曾嘗試UIPrintInfoOutputType.GrayScale但具有相同的效果。
public partial class AppDelegate : UIApplicationDelegate
{
public override bool FinishedLaunching (UIApplication app, NSDictionary options)
{
window.MakeKeyAndVisible();
var button = UIButton.FromType (UIButtonType.RoundedRect);
button.Frame = new RectangleF (100, 100, 120, 60);
button.SetTitle ("Print", UIControlState.Normal);
button.TouchDown += delegate {
Print();
};
window.AddSubview (button);
return true;
}
void Print()
{
var printInfo = UIPrintInfo.PrintInfo;
printInfo.JobName = "Test :";
printInfo.OutputType = UIPrintInfoOutputType.General;
printInfo.JobName = "Test: My first Print Job";
/*
var textFormatter = new UISimpleTextPrintFormatter ("Once upon a time...") {
StartPage = 0,
ContentInsets = new UIEdgeInsets (72, 72, 72, 72),
MaximumContentWidth = 6 * 72,
};
*/
var htmlFormatter = new UIMarkupTextPrintFormatter("<html><body>Test : Hi There!!</body></html>");
htmlFormatter.StartPage = 0;
htmlFormatter.ContentInsets = new UIEdgeInsets (72, 72, 72, 72); // 1 inch margins
htmlFormatter.MaximumContentWidth = 6 * 72;
var printer = UIPrintInteractionController.SharedPrintController;
printer.PrintInfo = printInfo;
printer.PrintFormatter = htmlFormatter;
printer.ShowsPageRange = true;
printer.Present (true, (handler, completed, err) => {
if (!completed && err != null){
Console.WriteLine ("error");
}
});
}
public override void OnActivated (UIApplication application)
{
}
}
你可以發佈一些示例代碼嗎? – iamandrus 2011-04-27 20:19:27