2012-01-27 5 views
1

NSTextview에서 PDF를 저장하고 헤더에 로고를 넣고 있습니다. 나는 pageHeader을 지나치며 로고가 나타나지만 잘립니다.NSTextView의 헤더 높이를 변경할 수 있습니까?

NSTextView의 헤더 높이를 변경할 수 있습니까?

감사합니다.

부분 코드 :

-(IBAction)impLaudo:(id)sender 
{ 
    NSPrintInfo *printInfo; 
    NSPrintInfo *sharedInfo; 
    NSPrintOperation *printOp; 
    NSMutableDictionary *printInfoDict; 
    NSMutableDictionary *sharedDict; 

    sharedInfo = [NSPrintInfo sharedPrintInfo]; 
    sharedDict = [sharedInfo dictionary]; 
    printInfoDict = [NSMutableDictionary dictionaryWithDictionary:sharedDict]; 

    [printInfoDict setObject:NSPrintSaveJob forKey:NSPrintJobDisposition]; 
    [printInfoDict setObject:[[dirLaudos stringByAppendingString:[estudo stringValue]] stringByAppendingString:@".pdf"] forKey:NSPrintSavePath]; 

    printInfo = [[NSPrintInfo alloc] initWithDictionary: printInfoDict]; 
    [printInfo setHorizontalPagination: NSClipPagination]; 
    [printInfo setVerticalPagination: NSAutoPagination]; 
    [printInfo setVerticallyCentered:NO]; 
    [[printInfo dictionary] setValue:[NSNumber numberWithBool:YES] forKey:NSPrintHeaderAndFooter]; 

    printOp = [NSPrintOperation printOperationWithView:textView printInfo:printInfo]; 
    [printOp setShowsPrintPanel:NO]; 
    [printOp runOperation];  
} 


@implementation MyTextView 

- (NSAttributedString *)pageHeader 
{ 
    // Adicionando cabeçalho 
    NSAttributedString *theHeader = nil; 

    NSImage * pic = [[NSImage alloc] initWithContentsOfFile:[dirLayout stringByAppendingString:@"cabecalho.jpg"]]; 
    NSTextAttachmentCell *attachmentCell = [[NSTextAttachmentCell alloc] initImageCell:pic]; 
    NSTextAttachment *attachment = [[NSTextAttachment alloc] init]; 
    [attachment setAttachmentCell: attachmentCell ]; 
    theHeader = [NSAttributedString attributedStringWithAttachment: attachment]; 
    return theHeader; 
} 

@end  
+0

PDF를 생성하는 데 사용하는 코드를 게시하십시오. –

답변

0

대신 최우선 -pageHeader, 당신은 -drawPageBorderWithSize:를 오버라이드 (override) 할 필요가, 당신은 인쇄시 페이지에 추가 점수를 그릴 수 있습니다.

Size 매개 변수는 현재 논리 페이지의 크기를 포함하는 NSSize 구조체입니다. 올바른 위치에 로고를 그려야합니다.

- (void)drawPageBorderWithSize:(NSSize)pageSize 
{ 
    [super drawPageBorderWithSize:pageSize]; 
    //draw your logo 
    NSPoint offset = NSMakePoint(100.0, 100.0); 
    NSImage* logo = [NSImage imageNamed:@"logo"]; 
    NSSize logoSize = [logo size]; 
    NSPoint imageOrigin = NSMakePoint(offset.x, pageSize.height - (offset.y + logoSize.height)); 
    [logo drawInRect:NSMakeRect(imageOrigin.x, imageOrigin.y, logoSize.width, logoSize.height 
      fromRect:NSZeroRect 
      operation:NSCompositeSourceOver 
      fraction:1.0 
     respectFlipped:YES 
       hints:nil]; 
} 
+0

Thanks @ rob-keniger! 게시 된 코드. 나는 너의 제안을 시도 할 것이다. – RinaldoSJr

+0

그것은 작동합니다! 대단히 감사합니다. @ rob-keniger! – RinaldoSJr

+0

좋습니다. 이 경우 질문에 답변으로 표시해야합니다. –

관련 문제