2017-01-17 20 views
1

UIViewからテキストを保存する、つまり選択可能なテキストを使用してPDFを作成する方法やライブラリはありませんか。私は以下を試しましたが、明快さはビットマップとしてレンダリングされるので損なわれます。UIViewからPDFを作成する

+ (NSData *)pdfDataOfScrollView:(UITableView *)scrollView 
{ 
    NSMutableData *pdfData = [NSMutableData data]; 

    UIGraphicsBeginPDFContextToData(pdfData, scrollView.bounds, nil); 
    UIGraphicsBeginPDFPage(); 
    CGContextRef pdfContext = UIGraphicsGetCurrentContext(); 

    [scrollView.layer renderInContext:pdfContext]; 

    // remove PDF rendering context 
    UIGraphicsEndPDFContext(); 
    return pdfData; 
} 
+0

https://github.com/iclems/iOS-htmltopdfこのコードを試してみてください。このライブラリはあなたに役立つかもしれません –

答えて

1

このライブラリを使用してPDF Linkを作成できます。

上記のライブラリを使用すると、下のコードからPDFを生成できます。

func generatePDF() { 
    let v1 = UIScrollView(frame: CGRect(x: 0.0,y: 0, width: 100.0, height: 100.0)) 
    let v2 = UIView(frame: CGRect(x: 0.0,y: 0, width: 100.0, height: 200.0)) 
    let v3 = UIView(frame: CGRect(x: 0.0,y: 0, width: 100.0, height: 200.0)) 
    v1.backgroundColor = .red 
    v1.contentSize = CGSize(width: 100.0, height: 200.0) 
    v2.backgroundColor = .green 
    v3.backgroundColor = .blue 

    let dst = URL(fileURLWithPath: NSHomeDirectory().stringByAppendingString("/sample1.pdf")) 
    // outputs as Data 
    do { 
     let data = try PDFGenerator.generated(by: [v1, v2, v3]) 
     data.write(to: dst, options: .atomic) 
    } catch (let error) { 
     print(error) 
    } 

    // writes to Disk directly. 
    do { 
     try PDFGenerator.generate([v1, v2, v3], to: dst)  
    } catch (let error) { 
     print(error) 
    } 
} 
0

NSMutableData *pdfData=[NSMutableData data]; 
CGRect bounds = CGRectMake(0, 0, 612, 792); // letter sized paper, adjust as needed 

UIGraphicsBeginPDFContextToData(pdfData, bounds, nil); 
CGContextRef pdfContext = UIGraphicsGetCurrentContext(); 

UIGraphicsBeginPDFPage(); 
[aView.layer renderInContext:pdfContext]; 

UIGraphicsBeginPDFPage(); 
[bView.layer renderInContext:pdfContext2]; 

UIGraphicsEndPDFContext(); 
関連する問題