2

重複の可能性:
pdfページをビュー全体に合わせる方法

問題なく PDF を表示していますが、アプリをコンパイルした時点では、元の PDF には大きな余白がありません。私のコード:

H ファイル内:

@interface viewPDF : UIView 

{

CGPDFDocumentRef document;


}

M ファイル内:

 - (id)initWithFrame:(CGRect)frame {

self = [super initWithFrame:(CGRect)frame];
if (self) {
    self.backgroundColor = [UIColor clearColor];
    NSString *pathToPdfDoc = [[NSBundle mainBundle] pathForResource:@"myPDF" ofType:@"pdf"];
    NSURL *pdfUrl = [NSURL fileURLWithPath:pathToPdfDoc];
    document = CGPDFDocumentCreateWithURL((__bridge CFURLRef)pdfUrl);
    currentPage = 1;

}

return self;
}

-(void)drawRect:(CGRect)inRect{                 
if(document) 

{

    CGPDFPageRef page = CGPDFDocumentGetPage(document, currentPage);
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    CGContextSaveGState(ctx);
    CGContextTranslateCTM(ctx, 0.0, [self bounds].size.height);

    CGContextScaleCTM(ctx, 1.0, -1.0);
    CGContextConcatCTM(ctx, CGPDFPageGetDrawingTransform(page, kCGPDFCropBox, [self bounds], 0, true));
    CGContextDrawPDFPage(ctx, page);    
    CGContextRestoreGState(ctx);

 }

マージンを回避する方法を知っている優れた PDF 開発者はいますか?

4

1 に答える 1

3

PDF ページは、物理的なページ サイズを定義するメディア ボックスと、メディア ボックス内のページの表示領域を定義するクロップ ボックスの 2 つのボックスによって定義されます。PDF ページを描画する前に、トリミング ボックスに一致するクリッピング パスを設定する必要があります。次に、ページを描画すると、クロップ ボックスの外側のすべてが切り取られ、任意のビューアで表示されるページが表示されます。

于 2012-07-25T08:25:41.103 に答える