2010-04-25 2 views
1

Я создал PDF-документ на iPad, но проблема в том, что у вас есть строка текста более 1 строки, содержимое просто уходит со страницы. Это мой код:Созданный какао 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 для рисования текста. Используйте CALayer renderInContext с вашим контекстом pdf.

+0

Могу ли я использовать [txtView.layer renderInContext: pdfContext]; добавить текстовое представление и содержимое i в пределах его границ в текстовое представление? –

+0

Да, это должно сработать. – drawnonward

Смежные вопросы