2012-12-19 169 views
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; 

創建PDF但它產生倒置i.e.180度,有鏡像。

這裏有什麼問題?

回答

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); 

你正在提供一些隨機的高度,而一些部分被拒絕了和其他人保持不變。所以會出現一個像效果鏡子。

+0

您的原始標識變換會立即丟棄 - 只需在aCgAffTrans的聲明中直接指定CGAffineTransformMakeTranslation的結果即可更清晰地表達出來。 – Adrian

+1

@Adrian:謝謝你,我編輯了我的回答:) –