zoukankan      html  css  js  c++  java
  • IOS

    #pragma mark - Merge PDF

     

    - (void)mergePDF

    {

        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

        NSString *filePath1 = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"阅办卡.pdf"];

        NSString *filePath2 = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"文件.pdf"];

        NSArray *PDFURLS = [NSArray arrayWithObjects:filePath1,filePath2, nil];

        

        [self joinPDF:PDFURLS];

    }

     

    - (NSString *)joinPDF:(NSArray *)listOfPaths {

        // File paths

        NSString *fileName = [NSString stringWithFormat:@"公文%d.pdf",arc4random_uniform(100)];

        NSString *pdfPathOutput = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:fileName];

        

        CFURLRef pdfURLOutput = (  CFURLRef)CFBridgingRetain([NSURL fileURLWithPath:pdfPathOutput]);

        

        NSInteger numberOfPages = 0;

        // Create the output context

        CGContextRef writeContext = CGPDFContextCreateWithURL(pdfURLOutput, NULL, NULL);

        

        for (NSString *source in listOfPaths) {

            CFURLRef pdfURL = (  CFURLRef)CFBridgingRetain([[NSURL alloc] initFileURLWithPath:source]);

            

            //file ref

            CGPDFDocumentRef pdfRef = CGPDFDocumentCreateWithURL((CFURLRef) pdfURL);

            numberOfPages = CGPDFDocumentGetNumberOfPages(pdfRef);

            

            // Loop variables

            CGPDFPageRef page;

            CGRect mediaBox;

            

            // Read the first PDF and generate the output pages

            //        NSLog(@"GENERATING PAGES FROM PDF 1 (%@)...", source);

            for (int i=1; i<=numberOfPages; i++) {

                page = CGPDFDocumentGetPage(pdfRef, i);

                mediaBox = CGPDFPageGetBoxRect(page, kCGPDFMediaBox);

                CGContextBeginPage(writeContext, &mediaBox);

                CGContextDrawPDFPage(writeContext, page);

                CGContextEndPage(writeContext);

            }

            

            CGPDFDocumentRelease(pdfRef);

            CFRelease(pdfURL);

        }

        CFRelease(pdfURLOutput);

        

        // Finalize the output file

        CGPDFContextClose(writeContext);

        CGContextRelease(writeContext);

        

        return pdfPathOutput;

    }

  • 相关阅读:
    [Inno Setup] 待读
    How do you close then restart explorer.exe in Inno Setup uninstall using the Restart Manager?
    [Inno Setup] 安装与卸载 Shell Extension DLL
    用Linux 搭建 PXE 网络引导环境
    优化Docker 镜像小技巧 转载:https://mp.weixin.qq.com/s/sSgXYbF5anubvVYQfVGQ3g
    升级centos内核,转载:http://www.mydlq.club/article/79/
    故障排查:Kubernetes 中 Pod 无法正常解析域名 转载:http://www.mydlq.club/article/78/
    VirtualBox虚拟机全屏显示
    temp
    Kubernetes Deployment故障排除图解指南 转载
  • 原文地址:https://www.cnblogs.com/tx8899/p/4082749.html
Copyright © 2011-2022 走看看