NSPDFImageRep / PDFOperationWithView question
NSPDFImageRep / PDFOperationWithView question
- Subject: NSPDFImageRep / PDFOperationWithView question
- From: Joel Norvell <email@hidden>
- Date: Sat, 17 Nov 2007 12:38:16 -0800 (PST)
Dear Cocoa-dev People,
When I read a two page PDF file and use PDFOperationWithView to "copy" its
NSPDFImageRep* pdfRep to pdxRep:
    [pdfRep bounds] is x=0, y=0, width=612, height=792
    [pdfRep pageCount] is 2
    [pdxRep bounds] is x=0, y=0, width=612, height=1584
    [pdxRep pageCount] is 1
I'd like the pdxRep copy to have the same bounds and pageCount as the original
pdfRep.
How could I accomplish this?  Or is this change of pageCount and bounds
unavoidable?
Note about my "added code":  I tried using both:
    PDFOperationWithView:insideRect:toData:
    PDFOperationWithView:insideRect:toData:printInfo:
But adding printInfo didn't affect the pageCount or bounds.
Sincerely,
Joel
P.S. My question is similar to Brock Brandenberg's well-written
"PDFOperationWithView" question which was asked but not answered in 2002.
// I added code at the end of this method in the PDFView sample
// http://developer.apple.com/samplecode/PDFView/
// PDFImageView loadFromPath: -- Load the PDF at the specified path into the
view.
// This automatically resizes the view to fit all pages of the document.
- (void) loadFromPath: (NSString *) path
{
    NSPDFImageRep *pdfRep;
    NSImage       *pdfImage;
    NSRect        frame;
    //  Load the file into an image-representation,
    //	then create an image and add the representation to it.
    pdfRep = [NSPDFImageRep imageRepWithContentsOfFile: path];
    pdfImage = [[[NSImage alloc] init] autorelease];
    [pdfImage addRepresentation: pdfRep];
    //	Figure our frame by getting the bounds, which is really the size
    //	of one page, and multiplying the height by the page count.
    frame = [pdfRep bounds];
    frame.size.height *= [pdfRep pageCount];
    //	Install the image (remember, we're an NSImageView subclass)
    [self setImage: pdfImage];
    //  Set our frame to match the PDF's full height (all pages)
    //  (don't involve our override of -setFrame:, or things won't work right)
    [super setFrame: frame];
    //	Always scroll to show the top of the image
    if ([self isFlipped])
        [self scrollPoint: NSMakePoint (0, 0)];
    else
        [self scrollPoint: NSMakePoint (0, frame.size.height)];
   //  ADDED CODE
    NSMutableData* pdxRepData = [[NSMutableData alloc] init];
    NSPrintOperation* printOp = [NSPrintOperation PDFOperationWithView:self
                                                            insideRect:[self
frame]
toData:pdxRepData];
    [printOp runOperation];
    NSPDFImageRep *pdxRep = [[NSPDFImageRep alloc] initWithData: pdxRepData];
}
      ____________________________________________________________________________________
Be a better pen pal.
Text or chat with friends inside Yahoo! Mail. See how.  http://overview.mail.yahoo.com/
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden