-1

私の問題は、画面テキストの pdf を作成する必要があることです。ビューには、スクロール可能なテキスト ビューが含まれています。ビューには、日付ラベル、場所ラベルなどの多くのコントロールがあり、テキスト ビューを作成できます。私のテキストビューの塗りつぶしテキストのpdfですが、PDFページにもテキストビューで日付ラベル、場所ラベルなどを追加する方法がわかりません。PDF作成のための私のコードは次のとおりです。

CGRect savedFrame = txtView.frame;

UIGraphicsBeginImageContext(txtView.contentSize);
{
    CGPoint savedContentOffset = txtView.contentOffset;

    txtView.contentOffset = CGPointZero;
    txtView.frame = CGRectMake(0, 0, txtJEntry.contentSize.width, txtView.contentSize.height);

    CGRect f = txtView.frame;
    CGContextRef ctx = CGPDFContextCreateWithURL((__bridge CFURLRef)[NSURL fileURLWithPath:newFilePath isDirectory:NO], &f, NULL);

    CGPDFContextBeginPage(ctx, NULL);
    CGContextScaleCTM(ctx, 1, -1);
    CGContextTranslateCTM(ctx, 0, -txtView.frame.size.height);
    [txtJEntry.layer renderInContext:ctx];
    CGPDFContextEndPage(ctx);
    CFRelease(ctx);

    txtJEntry.contentOffset = savedContentOffset;
    txtJEntry.frame = savedFrame;
}
UIGraphicsEndImageContext();

画像に示すように、これは私のビューのスクリーン ショットです。天気、場所の星、日付を PDF に追加する必要があります。画像に示されているように、これらのラベルの位置も PDF で同じにする必要があります。テキストビューのテキストはスクロール可能で、より多くのデータがあるため、画面全体のスクリーンショットを撮ることができません。

これらのコンテンツを私のpdfでも表示する方法を教えてください。

どんな提案でも大歓迎です。前もって感謝します!

4

1 に答える 1

0

私の理解では、UIView の内容全体を取得して PDF に変換したいと考えています。UIViewビュー上のすべてを PDF ファイルにレンダリングするためのカテゴリがあります。アプリケーションの 1 つで正常に使用しています。

//UIView+RenderPDF.h
@interface UIView (RenderPDF)
- (void)renderInPDFFile:(NSString*)path;
@end


//UIView+RenderPDF.m
#import "UIView+RenderPDF.h"
#import <QuartzCore/QuartzCore.h>

@implementation UIView (RenderPDF)

- (void)renderInPDFFile:(NSString*)path {

CGRect mediaBox = self.bounds;
CGContextRef ctx = CGPDFContextCreateWithURL((CFURLRef)[NSURL fileURLWithPath:path isDirectory:NO], &mediaBox, NULL);
CGPDFContextBeginPage(ctx, NULL);
CGContextScaleCTM(ctx, 1, -1);
CGContextTranslateCTM(ctx, 0, -mediaBox.size.height);
[self.layer renderInContext:ctx];
CGPDFContextEndPage(ctx);
CFRelease(ctx);
}
@end

今、それを使用するには、一度あなた#import UIView+RenderPDF.hがしなければならないことは、

NSArray* documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);
NSString* documentDirectory = [documentDirectories objectAtIndex:0];
NSString* documentDirectoryFilename = [documentDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"export.pdf"]];

[someView renderInPDFFile:documentDirectoryFilename];

その結果、ディレクトリexport.pdfに保存されますDocumentsビューのすべての要素のスクリーンショットをPDFファイルに。

お役に立てれば!

于 2012-06-06T07:42:32.377 に答える