1
私はipadアプリケーションでPDFを生成しています。ページ区切りを追加する必要があるので、2番目のページを描画する前に要素を移動する必要もあります。たとえば、私の長いテーブルビューは、2番目、3番目のページなどをレンダリングする前に垂直方向に調整する必要があります...iOSでPDFを生成するときの配置要素
PDFの作成はかなりシンプルで、最初のページは完全に生成されていますが、次のページ何も起こらないための私のテーブルビューを移動するには、私のフレームを試してみて、設定:
-(void) createPDF {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent:@"tmp.pdf"];
CGContextRef pdfContext = [self createPDFContext:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height) path:(CFStringRef)writableDBPath];
NSLog(@"PDF Context created");
CGContextBeginPage (pdfContext,nil); // 6
//turn PDF upsidedown
CGAffineTransform transform = CGAffineTransformIdentity;
transform = CGAffineTransformMakeTranslation(0, self.view.bounds.size.height);
transform = CGAffineTransformScale(transform, 1.0, -1.0);
CGContextConcatCTM(pdfContext, transform);
//Draw view into PDF
self.view.frame=CGRectMake(0, 0,self.view.bounds.size.width, self.view.bounds.size.height);
[self.view.layer renderInContext:pdfContext];
CGContextEndPage (pdfContext);// 8
CGContextBeginPage (pdfContext,nil);
//turn PDF upsidedown
CGContextConcatCTM(pdfContext, transform);
// moving the table to an arbitrary position for testing, nothing happens in the PDF - view itself is updated
self.itemsTableView.frame = CGRectMake(100, 100, self.view.bounds.size.width, self.view.bounds.size.height);
[self.itemsTableView.layer renderInContext:pdfContext];
CGContextEndPage (pdfContext);// 8
CGContextRelease (pdfContext);
}
実際にpdfの新しいページを作成していますか?これは、この図書館を理解するような苦痛です。がんばろう。 –
「テストのためにテーブルを任意の位置に移動すると、PDFに何も起こりません」という意味はどうですか? PDFのビューコンテンツをレンダリングするので、スーパービュー内のビューの位置はレンダリングに影響しません。 – iPDFdev
@Jesse - はい、ページを作成するのは魅力的です。 @iPDFdev - 理にかなっています。それではPDFビューのコンテキストにどのように配置すればいいですか? – Slee