たくさんのことを行うテスト用のアプリがありますが、最終製品はデータベースにアップロードされる .pdf です。残念ながら、私のエンド ユーザーの 1 人は、長い .pdf がすべて 1 ページであるという事実を気に入っていません。生成されるページの長さは非常に可変であるため、何があっても 1 つのページを生成していました。Adobe Acrobat が印刷用に大きなファイルを複数のページに並べて表示することは知っていますが、一部の人にとってはこれが難しすぎるのではないかと顧客は懸念しています ---
これが私が今.pdfを作成している方法です
- (void)exportAsPDF:(NSString *)filename
{
int restorer = mineTable.frame.size.height;
CGRect temp = CGRectMake(mineTable.frame.origin.x, mineTable.frame.origin.y, mineTable.frame.size.width, 200*formDataStorage.cake.count);
[self resizeTheTable:temp];
int addNumber = temp.size.height - temp.origin.y;
CGRect mediaBox = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height + addNumber);
NSString *tmpFile = filename;
CGContextRef ctx = CGPDFContextCreateWithURL((__bridge CFURLRef)[NSURL fileURLWithPath:tmpFile], &mediaBox, NULL);
//turn PDF upside-down
CGAffineTransform transform = CGAffineTransformIdentity;
transform = CGAffineTransformMakeTranslation(0, mediaBox.size.height);
transform = CGAffineTransformScale(transform, 1.0, -1.0);
CGPDFContextBeginPage(ctx, NULL);
CGContextConcatCTM(ctx, transform);
[self.view setNeedsLayout];
[self.view setNeedsDisplay];
[self.view.layer renderInContext:ctx];
CGPDFContextEndPage(ctx);
CGPDFContextClose(ctx);
CFRelease(ctx);
}
ご覧のとおり、ビューのサイズを変更して、レンダリングしているテーブル内のすべてのセルを表示し、ビューのスクリーンショットを .pdf に並べ替えます。サイズ変更されたビューがユーザーに表示されることはありません (すべてが画面に収まるわけではありません)。
作成された .pdf のさまざまな部分をさまざまなページに関連付ける方法を知っている人はいますか? ありがとう。