我正在创建一个带有标签、表格和图表的 PDF。我绘制图像和文本没有问题,但我有自定义的 PDF 图表UIViews
。
当前上下文最初是为绘制 PDF 设置的,这里的大多数问题都与此有关。但我说的是,一旦你已经在绘制 PDF,你如何添加一个额外的视图,就像添加一行文本或图像一样。即,我想在UIView
我正在创建的 PDF 中添加一个包含饼图的文件。
我尝试将视图转换为图像,但它的分辨率非常低,你可以播种像素化,而如果你直接绘制它,它会使用矢量图形并且变得更加清晰。
PieChartView 来自一个开源的 github 库。管理器是我编写的一个简单的自定义类来管理它。
CGRect frame = CGRectMake(PAGE_WIDTH/2 - pieWidth/2, origin.y, pieWidth, pieHeight);
PieChartView* pie = [[PieChartView alloc] initWithFrame:frame];
PieChartManager* pieManager = [[BPPieChartManager alloc] initWithData:data];
pie.delegate = pieManager;
pie.datasource = pieManager;
[pie.layer drawInContext:UIGraphicsGetCurrentContext()];
这会导致饼图填充 PDF 的整个页面。这并不奇怪,因为它的层不包含有关框架的信息。
我想我应该使用CGContextTranslateCTM
和CGContextScaleCTM
重新定位,但我不确定是否有更简单的方法,而且我不确定如何使用它们来获得我想要的。
谢谢你的帮助
编辑:我试着用这种方式画馅饼:
[pie drawRect: frame];
这会在页面的左上角以预期的大小绘制饼图。我如何将它拿到我想要的地方?框架包含我想要它的原点,那么为什么将它放在左上角?