PDF生成的页面颠倒了。

3
我使用以下代码创建PDF文件:
UIImage *CurImage=[UIImage imageWithContentsOfFile:[ImageArr objectAtIndex:i]];
UIView *ViewDraw=[[UIView alloc]initWithFrame:CGRectMake(0,10, pageSize, pageSize)];  
ViewDraw.backgroundColor=[UIColor clearColor];
CGContextBeginPage (pdfContext,nil);

//turn PDF upsidedown
CGAffineTransform transform = CGAffineTransformIdentity;
transform = CGAffineTransformMakeTranslation(0,CurImage.size.height);
transform = CGAffineTransformScale(transform, 1.0, -1.0);

CGContextConcatCTM(pdfContext, transform);
int y = (pageSize - CurImage.size.height)/2;
int x = (pageSize - CurImage.size.width)/2;

[CurImage drawInRect:CGRectMake( (ViewDraw.frame.width - curImage.frame.width)/2, 24, size.width, curImage.frame.height)];

//        CGContextDrawImage(pdfContext, CGRectMake(x,-y, CurImage.size.width, CurImage.size.height), CurImage.CGImage);
CGContextEndPage (pdfContext);
CurImage=nil;

但它生成的是上下颠倒的图像,即180度镜像。

这里出了什么问题?

1个回答

3

将PDF文件翻转:

CGAffineTransform aCgAffTrans = CGAffineTransformMakeTranslation(0,892); //here the whole PDF page height should be given 
aCgAffTrans = CGAffineTransformScale(aCgAffTrans, 1.0, -1.0);
CGContextConcatCTM(aCgPDFContextRef, aCgAffTrans);

您提供了一些随机高度,而某些部分会被转向,而其他部分则保持不变。因此出现了镜像效果。


你的原始身份转换立即被丢弃了 - 通过直接在aCgAffTrans的声明中分配CGAffineTransformMakeTranslation的结果,你可以使这一点更清晰。 - Adrian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接