3

私はAirPrintテキストビューテキストを実行するためにこのコードを持っています

-(IBAction)_clickbtnprintermainnote:(id)sender
{
    UIPrintInteractionController *print = [UIPrintInteractionController sharedPrintController];

    print.delegate = self;
    UIPrintInfo *printInfo = [UIPrintInfo printInfo];
    printInfo.outputType = UIPrintInfoOutputGeneral;
    printInfo.jobName =@"Nots of MyBibleApp";
    printInfo.duplex = UIPrintInfoDuplexLongEdge;
    print.printInfo = printInfo;
    print.showsPageRange = YES;
    print.printingItem = _txtmainnote.text;

    void (^completionHandler)(UIPrintInteractionController *,BOOL, NSError *) = ^(UIPrintInteractionController *print,BOOL completed, NSError *error) {
        if (!completed && error) {
            NSLog(@"houston we have a problem");
        }
    };
    [print presentAnimated:YES completionHandler:completionHandler];
}

しかし、iPadのデフォルトのピンターオプションのようなプリンターオプションのポップアップが表示されませんでした。バーボタンを使用していません。UIbuttonがあります。これを正しく行う方法は、コードに間違いがありますか?._txtmainnoteは私のテキストビューです。

前もって感謝します。

4

3 に答える 3

3

これから、:_printingItem

オブジェクトは、、、、または クラスのインスタンスNSURLである必要があります。NSDataUIImageALAsset

したがって、おそらく次のようなものを渡す必要があります。

NSData* data=[_txtmainnote.text dataUsingEncoding:NSUTF8StringEncoding];
print.printingItem = data;
于 2012-05-16T10:48:03.603 に答える
0

私は解決策を得ました、 iPadアプリを使用しているので[print presentAnimated:YES completionHandler:completionHandler];、 このコード行をに変更するだけです。[print presentFromRect:CGRectMake(600, 650, 100, 200) inView:mainnotepageview animated:YES completionHandler:completionHandler];

于 2012-05-16T10:44:21.363 に答える
0
@interface ViewController ()
@property (strong, nonatomic) IBOutlet UILabel *label;
@property (strong, nonatomic) IBOutlet UIView *mainnotepageview;
@property (strong, nonatomic) IBOutlet UITextField *text02;
@property (strong, nonatomic) IBOutlet UITextView *myTextView;

 - (IBAction)btnSettingsTapped:(id)sender
{
 NSMutableString *printBody = [NSMutableString stringWithFormat:@"%@,  %@",self.myTextView.text, self.label.text];
//[printBody appendFormat:@"\n\n\n\nPrinted From *myapp*"];

UIPrintInteractionController *pic = [UIPrintInteractionController sharedPrintController];
pic.delegate = self;

UIPrintInfo *printInfo = [UIPrintInfo printInfo];
printInfo.outputType = UIPrintInfoOutputGeneral;
printInfo.jobName = self.label.text;
pic.printInfo = printInfo;

UISimpleTextPrintFormatter *textFormatter = [[UISimpleTextPrintFormatter alloc] initWithText:printBody];
textFormatter.startPage = 0;
textFormatter.contentInsets = UIEdgeInsetsMake(72.0, 72.0, 72.0, 72.0); // 1 inch margins
textFormatter.maximumContentWidth = 6 * 72.0;
pic.printFormatter = textFormatter;

pic.showsPageRange = YES;

void (^completionHandler)(UIPrintInteractionController *, BOOL, NSError *) =
^(UIPrintInteractionController *printController, BOOL completed, NSError *error) {
    if (!completed && error) {
        NSLog(@"Printing could not complete because of error: %@", error);
    }
};

//[pic presentFromBarButtonItem:self.rightButton animated:YES completionHandler:completionHandler];
[pic presentFromRect:CGRectMake(600, 650, 100, 200) inView:_mainnotepageview animated:YES completionHandler:completionHandler];

}
于 2015-08-07T06:25:52.137 に答える