Tôi cần một cách để buộc Máy in đã chọn vào UIPrintInteractionController khi nó được trình bày, sử dụng một máy in đã biết.AirPrint: Đặt máy in mặc định trong UIPrintInteractionController
LƯU Ý: Để làm các xét nghiệm Tôi đang sử dụng cài đặt trên Printopia của tôi "MacBook Pro" dùng chung "in"
tôi đã thực hiện kiểm tra này:
-(IBAction)print:(id)sender
{
UIPrintInteractionController *controller = [UIPrintInteractionController sharedPrintController];
UIPrintInteractionCompletionHandler completionHandler = ^(UIPrintInteractionController *printController, BOOL completed, NSError *error) {
NSLog(@"Selected Printer ID: %@",printController.printInfo.printerID);
};
NSString* path = [[NSBundle mainBundle] pathForResource:@"TestImage" ofType:@"png"];
NSURL* imageURL = [NSURL fileURLWithPath:path isDirectory:NO];
UIPrintInfo *printInfo = [UIPrintInfo printInfo];
printInfo.outputType = UIPrintInfoOutputPhoto;
printInfo.jobName = @"Image print";
controller.printInfo = printInfo;
controller.printingItem = imageURL;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
[controller presentFromBarButtonItem:self.printButton animated:YES completionHandler:completionHandler]; // iPad
}
else
{
[controller presentAnimated:YES completionHandler:completionHandler]; // iPhone
}
}
Khi in được thực hiện , ứng dụng các bản ghi sau máy in ID:
\032Printer\[email protected]\032MacBook\032Pro._ipp._tcp.local.
tôi muốn ghi đè lên máy in vì vậy tôi phải làm theo cách này:
UIPrintInfo *printInfo = [UIPrintInfo printInfo];
printInfo.printerId = @"\032Printer\[email protected]\032MacBook\032Pro._ipp._tcp.local.";
controller.printInfo = printInfo;
Nhưng vì một số lý do nó không hoạt động, UIPrintInteractionController không chọn máy in như mong đợi, nhưng máy in được hiển thị trong danh sách máy in.
Tôi đoán vấn đề là các ký tự lạ hiện diện trong ID máy in.
Bất kỳ ai cũng biết cách printInfo.printerId được mã hóa và cách đặt thủ công?
Nếu tôi lưu trữ máy in NSString * vào thanh công cụ và đặt lại lần nữa trên hành động in tiếp theo, nó không hoạt động, nhưng tôi không thể ép buộc máy in mặc định bằng Id máy in bằng tay.
btw: Rõ ràng, nếu máy in không có sẵn/thể truy cập, tôi biết rằng không thể chọn ...
Cảm ơn, nó hoạt động cho các máy in AirPrint tiêu chuẩn. Vấn đề là đối với Printopia gắn thêm một char đặc biệt dùng làm biểu tượng máy in. May mắn thay là có thể vô hiệu hóa nó trong cài đặt Printopia. – Lubbo
Điều cần biết! :) –