在目标c中从uiwebview生成PDF的问题 [英] Issues in generating PDF from uiwebview in objective c

查看:134
本文介绍了在目标c中从uiwebview生成PDF的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在uiwebview中打开pdf文件,在uiwebview子视图中添加图像和文本。然后我尝试创建了pdf文件。下面我用来生成pdf文件的示例。在单页中编写多页。如何编写样品质量和精确尺寸。
请检查屏幕截图及以下来源

I have open pdf file in uiwebview, add image and text in uiwebview subview.Then i tried created pdf file. Below sample i have used to generate pdf file. Multiple page writing in single page. How can i write sample quality and exact size. Please check screen shots and below source

UIGraphicsBeginPDFContextToData( pdfData, CGRectZero, nil );

for (int i = 0; i < 10; i++) {

    CGRect f = [pdfView frame];
    [pdfView setFrame: f];

    UIGraphicsBeginPDFPage();
    CGContextRef currentContext = UIGraphicsGetCurrentContext();
    CGContextTranslateCTM(currentContext, 72, 72); // Translate for 1" margins
    [[[pdfView subviews] lastObject] setContentOffset:CGPointMake(0, 648 * i) animated:NO];
    [pdfView.layer renderInContext:currentContext];
}

UIGraphicsEndPDFContext();

我也试过以下链接但我无法添加uiwebview子视图来编写pdf。
http://b2cloud.com.au/tutorial/drawing-over-a-pdf-in-ios-pdf-template/

and also i have tried this following link but i couldn't add uiwebview subview to write the pdf. http://b2cloud.com.au/tutorial/drawing-over-a-pdf-in-ios-pdf-template/

推荐答案

在我看来,你只是想尝试向现有PDF添加内容,对吗?

It looks to me like you're just trying to add content to an existing PDF, right?

- (void) drawCustomPDFContent
{
    //  Put your drawing calls here
    //  Draw a red box
    [[UIColor redColor] set];
    UIRectFill(CGRectMake(20, 20, 100, 100));

    //  Example of drawing your view into PDF, note that this will be a rasterized bitmap, including the text.
    //  To get smoother text you'll need to use the NSString draw methods
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    [view.layer renderInContext:ctx];
}

- (void) createCustomPDF
{
    NSURL* pdfURL = ... /* URL to pdf file */;
    CGPDFDocumentRef pdf = CGPDFDocumentCreateWithURL((CFURLRef)pdfURL);

    const size_t numberOfPages = CGPDFDocumentGetNumberOfPages(pdf);

    NSMutableData* data = [NSMutableData data];
    UIGraphicsBeginPDFContextToData(data, CGRectZero, nil);

    for(size_t page = 1; page <= numberOfPages; page++)
    {
        //  Get the current page and page frame
        CGPDFPageRef pdfPage = CGPDFDocumentGetPage(pdf, page);
        const CGRect pageFrame = CGPDFPageGetBoxRect(pdfPage, kCGPDFMediaBox);

        UIGraphicsBeginPDFPageWithInfo(pageFrame, nil);

        //  Draw the page (flipped)
        CGContextRef ctx = UIGraphicsGetCurrentContext();
        CGContextSaveGState(ctx);
        CGContextScaleCTM(ctx, 1, -1);
        CGContextTranslateCTM(ctx, 0, -pageFrame.size.height);
        CGContextDrawPDFPage(ctx, pdfPage);
        CGContextRestoreGState(ctx);

        if(page == 1)
        {
            [self drawCustomPDFContent];
        }
    }

    UIGraphicsEndPDFContext();

    CGPDFDocumentRelease(pdf);
    pdf = nil;

    //  Do something with data here
    [data writeToFile:... atomically:YES];
}

参考的部分:

http://b2cloud.com .au / tutorial / drawing-a-pdf-in-ios-pdf-template /

这篇关于在目标c中从uiwebview生成PDF的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆