我使用以下代码生成 pdf 文件及其内容。最初,我设计了 pdf 内容,通过将 cgpoint 值赋予线条来绘制表格。
+(void)drawPDF:(NSString*)fileName
{
    UIGraphicsBeginPDFContextToFile(fileName, CGRectZero, nil);
    UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, 1024, 748), nil);
    int xOrigin = 50;
    int yOrigin = 300;
   int rowHeight = 120;
   int columnWidth = 130;
   int numberOfRows = 7;
    int numberOfColumns = 4;
    [self drawTableAt:CGPointMake(xOrigin, yOrigin) withRowHeight:rowHeight andColumnWidth:columnWidth andRowCount:numberOfRows andColumnCount:numberOfColumns];
   UIGraphicsEndPDFContext();
}
 +(void)drawTableAt:(CGPoint)origin
  withRowHeight:(int)rowHeight
andColumnWidth:(int)columnWidth
   andRowCount:(int)numberOfRows
andColumnCount:(int)numberOfColumns
 {
    for (int i = 0; i <= numberOfRows; i++) {
        int newOrigin = origin.y + (rowHeight*i);
        CGPoint from = CGPointMake(origin.x, newOrigin);
        CGPoint to = CGPointMake(origin.x + (numberOfColumns*columnWidth), newOrigin);
        [self drawLineFromPoint:from toPoint:to];
    }
    for (int i = 0; i <= numberOfColumns; i++) {
        int newOrigin = origin.x + (columnWidth*i);
        CGPoint from = CGPointMake(newOrigin, origin.y);
        CGPoint to = CGPointMake(newOrigin, origin.y +(numberOfRows*rowHeight));
        [self drawLineFromPoint:from toPoint:to];
    }
}
+(void)drawLineFromPoint:(CGPoint)from toPoint:(CGPoint)to
{
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetLineWidth(context, 2.0);
    CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();
    CGFloat components[] = {0.2, 0.2, 0.2, 0.3};
    CGColorRef color = CGColorCreate(colorspace, components);
    CGContextSetStrokeColorWithColor(context, color);
    CGContextMoveToPoint(context, from.x, from.y);
    CGContextAddLineToPoint(context, to.x, to.y);
    CGContextStrokePath(context);
    CGColorSpaceRelease(colorspace);
    CGColorRelease(color);
}
输出为

但我将 numberOfRows 指定为 7,只有 3 行可见,查看其余行(即)我需要查看 pdf 的第二页。numberOfRows 可能会动态变化,如果 numberOfRows = 12 表示否。pdf 中的页数应为 3 或以上。该怎么办?我是新手。