Avec plaisir, feel free to share the result of your work once you're done :)
- Matt On Thu, Nov 4, 2010 at 7:19 PM, Julien Jassaud <sojasta...@gmail.com> wrote: > Matt, Laurent, > > Thanks for pointing me to this very obvious mistake ! It works perfectly > now. > > Julien > > Le 5 nov. 2010 à 05:23, Laurent Sansonetti a écrit : > > Salut Julien, > > Looks like you forgot to set the value of the > pointer. CGPDFContextCreateWithURL() was therefore called with a pointer to > a zero rect. > > Try this: > > page_rectangle = NSMakeRect(0,0,100,100) > page_rectangle_pointer = Pointer.new_with_type(NSRect.type) # Using > NSRect.type is better than pasting the whole signature here > page_rectangle_pointer[0] = page_rectangle > > Laurent > > On Nov 4, 2010, at 3:12 AM, Julien Jassaud wrote: > > Hello to every one, > > I am trying to programmatically create a pdf. I have this quite simple code > in Cocoa that works perfectly : > > #import <Cocoa/Cocoa.h> > #import <Foundation/Foundation.h> > > int main (int argc, const char * argv[]) { > > NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; > > CGContextRef pdfContext; > CFStringRef path; > CFURLRef url; > CGRect pageRect; > > path > = CFStringCreateWithCString(NULL, "./my_pdf.pdf", kCFStringEncodingUTF8); > url = CFURLCreateWithFileSystemPath(NULL, path, kCFURLPOSIXPathStyle, 0); > CFRelease (path); > > pageRect = NSMakeRect(0,0,100,100); > > pdfContext = CGPDFContextCreateWithURL(url, &pageRect, nil); > CFRelease(url); > > CGPDFContextBeginPage(pdfContext, nil); > > CGContextSetCMYKFillColor(pdfContext, 1.0, 0.0, 0.0, 0.0, 1.0); > CGContextFillRect(pdfContext, NSMakeRect(30, 30, 40, 40)); > > CGPDFContextEndPage(pdfContext); > > CGPDFContextClose(pdfContext); > > [pool drain]; > return 0; > > } > > > After running this program I get a pdf in perfect working order. I tried to > port this little example to MacRuby like so : > > framework 'Cocoa' > > url = CFURLCreateWithFileSystemPath(nil, './my_pfd.pdf', > KCFURLPOSIXPathStyle, 0) > > page_rectangle = NSMakeRect(0,0,100,100) > page_rectangle_pointer = > Pointer.new_with_type('{CGRect={CGPoint=dd}{CGSize=dd}}') > > pdf_context = CGPDFContextCreateWithURL(url, page_rectangle_pointer, nil) > > CGPDFContextBeginPage(pdf_context, nil) > > CGContextSetCMYKFillColor(pdf_context, 1.0, 0.0, 0.0, 0.0, 1.0) > CGContextFillRect(pdf_context, NSMakeRect(30, 30, 40, 40)) > > CGPDFContextEndPage(pdf_context) > CGPDFContextClose(pdf_context) > > This do produces a pdf but it is completely empty. Also, MacRuby complains > when called with the -w option : > > $ macruby -w cocoapdf.rb > unknown: warning: instance variable __octype__ not initialized > > > Does anybody have an idea what I am doing wrong ? > > Thanks, > Julien Jassaud > > _______________________________________________ > MacRuby-devel mailing list > MacRuby-devel@lists.macosforge.org > http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel > > > _______________________________________________ > MacRuby-devel mailing list > MacRuby-devel@lists.macosforge.org > http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel > > > > _______________________________________________ > MacRuby-devel mailing list > MacRuby-devel@lists.macosforge.org > http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel > >
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel