0

私は過去数時間の問題に苦しんでいます。私はプログラムでpdfを作成し、それを~/library/Application Support/iPhone Simulator/...に保存します。プログラムはシミュレーターで正常に動作します。webViewでpdfを保存して取得できます。

しかし、iPhone4 デバイスでアプリをテストすると、取得時に PDF ファイルが表示されません。私は新しいので、デバイスで作成されたPDFを手動で確認するかどうかわかりません。

助けてください。

ありがとう

このコードからpdfを保存します:

- (void)generatePdfButtonPressed{

pageSize = CGSizeMake(612, 792);
NSString *fileName = @"Demo.pdf";
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *pdfFileName = [documentsDirectory stringByAppendingPathComponent:fileName];

[self generatePdfWithFilePath:pdfFileName];
}


- (void) generatePdfWithFilePath: (NSString *)thefilePath
{
UIGraphicsBeginPDFContextToFile(thefilePath, CGRectZero, nil);

NSInteger currentPage = 0;
BOOL done = NO;
do
{
    // Mark the beginning of a new page.
    UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, pageSize.width, pageSize.height), nil);

    // Draw a page number at the bottom of each page.
    currentPage++;
    //[self drawPageNumber:currentPage];

    //Draw a border for each page.
  //  [self drawBorder];

    //Draw text fo our header.
    [self drawHeader];

    //Draw a line below the header.
    [self drawLine];


    //Draw personel details
    [self drawPersonelDetail];

    //Draw Education
    [self drawEducation];




    //Draw work Experiences
    [self drawWorkExperiences];

    //Draw work Activities
    [self drawActivities];


    //Draw Skills
    [self drawSkils];


    //Draw some text for the page.
 //   [self drawText];

    yCord=550;
//    [self drawText];

    //Draw an image
//    [self drawImage];
    done = YES;
}
while (!done);

// Close the PDF context and write the contents out.
UIGraphicsEndPDFContext();
}
4

3 に答える 3

2

長い苦労の末、私は自分自身の質問の解決策を見つけました。私は以下の解決策を提供します。

- (void)generatePdfButtonPressed{

pageSize = CGSizeMake(612, 792);
NSString *fileName = @"Demo.pdf";
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *pdfFileName = [documentsDirectory stringByAppendingPathComponent:fileName];

[self generatePdfWithFilePath:pdfFileName];
}


- (void) generatePdfWithFilePath: (NSString *)thefilePath
{
UIGraphicsBeginPDFContextToFile(thefilePath, CGRectZero, nil);

NSInteger currentPage = 0;
BOOL done = NO;
do
{
// Mark the beginning of a new page.
UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, pageSize.width, pageSize.height), nil);

// Draw a page number at the bottom of each page.
currentPage++;
[self drawPageNumber:currentPage];

//Draw a border for each page.
 [self drawBorder];

//Draw text  our header.
[self drawHeader];

//Draw a line below the header.
[self drawLine];


//Draw personel details
[self drawPersonelDetail];

//Draw Education
[self drawEducation];


//Draw an image
[self drawImage];

done = YES;
}
while (!done);

// Close the PDF context and write the contents out.
UIGraphicsEndPDFContext();
}



And for Display the pdf file the method is :

- (void)showPdfClicked
{

pdf1View.scalesPageToFit = YES;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

NSLog(@"%@",documentsDirectory);

NSString *path1 =[documentsDirectory stringByAppendingPathComponent:@"Demo.pdf"];

NSLog(@"Retruve Save path is %@: ",path1);
// NSString *path1 = [[NSBundle mainBundle] pathForResource:@"pdf1" ofType:@"pdf"];
NSURL *targetURL1 = [NSURL fileURLWithPath:path1];
NSURLRequest *request1 = [NSURLRequest requestWithURL:targetURL1];
[pdf1View loadRequest:request1];

}
于 2012-08-27T06:14:42.257 に答える
0

私は以前にこの問題に遭遇しました。私の推測では、これはメモリの問題です。ロードしようとしているPDFファイルのサイズはどれくらいですか?UIWebView表示用の大きなファイルのバッファリングに問題があるようです(これを行う場合)。

于 2012-08-25T23:25:02.697 に答える
0

作成したPDFをこのコードを介して電子メールで正常に送信しました。これはあなたを助けるかもしれません(dottorfeelgood)。

-(IBAction)emailButtonClicked
{


MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;
[picker setSubject:@"Subject"];


NSString *fileName = @"Demo.pdf";
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *pdfFileName = [documentsDirectory stringByAppendingPathComponent:fileName];



NSMutableData *pdfData = [NSMutableData data];


pdfData = [NSData dataWithContentsOfFile:pdfFileName];

CGRect bounds=CGRectMake(0, 0, 612, 792);
[picker addAttachmentData:pdfData mimeType:@"application/pdf" fileName:@"SomeFile.pdf"];




// Fill out the email body text
NSString *emailBody = @"Image is attached";
[picker setMessageBody:emailBody isHTML:NO];
[self presentModalViewController:picker animated:YES];

//[picker release];


}

ハッピーコーディング!!!

于 2012-09-04T12:19:47.330 に答える