2010-04-25 5 views
1

iPad에서 PDF를 만들었지 만 한 줄 이상의 텍스트가있을 경우 콘텐츠가 페이지에서 벗어납니다. 코코아 만든 PDF 올바르게 렌더링되지 않음

void CreatePDFFile (CGRect pageRect, const char *filename) { 
CGContextRef pdfContext; 
CFStringRef path; 
CFURLRef url; 
CFMutableDictionaryRef myDictionary = NULL; 
path = CFStringCreateWithCString (NULL, filename, 
      kCFStringEncodingUTF8); 
url = CFURLCreateWithFileSystemPath (NULL, path, 
      kCFURLPOSIXPathStyle, 0); 
CFRelease (path); 
myDictionary = CFDictionaryCreateMutable(NULL, 0, 
      &kCFTypeDictionaryKeyCallBacks, 
      &kCFTypeDictionaryValueCallBacks); 
NSString *foos = @"Title"; 
const char *text = [foos UTF8String]; 
CFDictionarySetValue(myDictionary, kCGPDFContextTitle, CFSTR(text)); 
CFDictionarySetValue(myDictionary, kCGPDFContextCreator, CFSTR("Author")); 
pdfContext = CGPDFContextCreateWithURL (url, &pageRect, myDictionary); 
CFRelease(myDictionary); 
CFRelease(url); 

CGContextBeginPage (pdfContext, &pageRect); 

CGContextSelectFont (pdfContext, "Helvetica", 12, kCGEncodingMacRoman); 
CGContextSetTextDrawingMode (pdfContext, kCGTextFill); 
CGContextSetRGBFillColor (pdfContext, 0, 0, 0, 1); 
NSString *body = @"text goes here"; 
const char *text = [body UTF8String]; 
CGContextShowTextAtPoint (pdfContext, 30, 750, text, strlen(text)); 

CGContextEndPage (pdfContext); 

CGContextRelease (pdfContext);} 

지금 문제가 페이지의 텍스트를 작성하는 내 안에있다,하지만 문제는 내가 여러 줄 "텍스트보기"를 지정하는 것 같지 수 있다는 것입니다 : 이것은 내 코드입니다.

답변

0

CGContextGetTextPosition을 사용하여 텍스트를 그릴 때 텍스트를 측정 할 수 있다고 생각합니다. 이것을 사용하면 텍스트를 효과적으로 감쌀 수 있습니다.

UILabel 또는 UITextView를 사용하여 텍스트를 그릴 수 있습니다. pdf 컨텍스트와 함께 CALayer renderInContext를 사용하십시오.

+0

그래서 [txtView.layer renderInContext : pdfContext]를 사용할 수 있습니다. 텍스트보기에 텍스트보기와 그 내용을 추가하려면? –

+0

예, 작동합니다. – drawnonward

관련 문제