Как отображать и создавать текст и изображения в PDF в iPhone? - PullRequest
1 голос
/ 21 апреля 2011

Я хочу создавать и отображать PDF, импортируя в него текст и изображения. Есть ли какой-либо код или документ, который может мне помочь? Спасибо ....

Ответы [ 2 ]

0 голосов
/ 18 февраля 2016

Я понимаю, что этот вопрос довольно старый, но я заметил, что на него нет ответа.

PDF можно создать в iOS с помощью CoteText. Существует довольно хорошее руководство по созданию PDF-файла и добавлению в него текста в библиотеке разработчика Apple для iOS . Я обнаружил, что это руководство немного устарело и не дает полного ответа на этот вопрос, поэтому я собрал код, который охватывает создание PDF, рисование текста, рисование изображения и отображение PDF.

Приведенный ниже код нарисует PDF-файл с изображением и текстом. Затем сохраните его в предоставленном.

+(void)drawPDF:(NSString*)fileName
{
    // Create the PDF context using the default page size of 612 x 792
    UIGraphicsBeginPDFContextToFile(fileName, CGRectZero, nil);
    // Mark the beginning of a new page with a sample size
    UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, 612, 792), nil);

    [self drawTextWithString:@"Hello World" inFrame:CGRectMake(20, 20, 300, 50)];

    UIImage* image = [UIImage imageNamed:@"helloWorld.png"];
    CGRect frame = CGRectMake(30, 30, 200, 50);

    [self drawImage:image inRect:frame];

    UIGraphicsEndPDFContext();
}

Это код, который рисует текст. Обратите внимание, что в нем не учитывается ограничение или перенос, поэтому, если строка больше рамки, она все равно будет нарисована.

+(void)drawTextWithString:(NSString *)stringToDraw inFrame:(CGRect)frameRect {
    UIFont *theFont = [UIFont systemFontOfSize:12];

    NSDictionary *attributes = @{ NSFontAttributeName: theFont};

    // The text will be drawin in the frameRect, where (0,0) is the top left corner
    [stringToDraw drawInRect:frameRect withAttributes:attributes];
}

И это код, который рисует изображение. Это довольно просто.

+(void)drawImage:(UIImage*)image inRect:(CGRect)rect {
    [image drawInRect:rect];
}

Приведенная ниже функция будет отображать PDF с помощью UIWebView.

-(void)renderPdfFile:(NSString *)fileName
{
    // This is here for demo purposes only. In a real world example the UIWebView
    // will probably be linked directly from the story board
    UIWebView* webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];

    NSURL *url = [NSURL fileURLWithPath:fileName];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [webView setScalesPageToFit:YES];
    [webView loadRequest:request];

    [self.view addSubview:webView];
}

Если вы заинтересованы в рендеринге PDF-файлов, у меня есть еще сообщения здесь , это может быть полезно.

0 голосов
/ 21 апреля 2011

Взгляните на Adobe PDF Library SDK - http://www.adobe.com/devnet/pdf/library.html

John

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...