I'm developing an open-source command line tool named wkpdf (http://wkpdf.plesslweb.ch ) that uses WebKit to generate a PDF for a URL. Due to some unknown changes, wkpdf is not compatible with the recently released Mac OS X 10.5 (Leopard).

When running wkpdf, NSView is raising the following assertion, when the WebView is printed:

   wkpdf --source http://wkpdf.plesslweb.ch --output wkpdf.pdf
2007-12-04 19:24:45.585 wkpdf[1902:10b] *** Assertion failure in - [WebHTMLView lockFocusIfCanDraw],
   /SourceCache/AppKit/AppKit-949/AppKit.subproj/NSView.m:4776
2007-12-04 19:24:45.586 wkpdf[1902:10b] lockFocus sent to a view which is not in a window

The same problem was also mentioned by Scott Garner on the cocoa-dev mailinglist (http://www.cocoabuilder.com/archive/message/cocoa/2007/11/2/192061 ) for his Automator action that converts URLs to PDFs.

I couldn't find a solution in Apple's documentation or on the web. I suppose the problem is related to the fact, that wkpdf doesn't have a user interface, i.e. the WebView is not visible. Here are some code snippets, the full source code can be browsed at http://wkpdf.plesslweb.ch/browser/trunk

The WebView is created like this:

WebView * webView = [[WebView alloc] initWithFrame:NSMakeRect(0,0,800,600) frameName:@"myFrame" groupName:@"myGroup"];
   [webView setFrameLoadDelegate: controller];
   NSURLRequest * request = ...
   [[webView mainFrame] loadRequest:request];

And later printed in the didFinishLoadForFrame callback:

(void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame
   ...
   NSView *viewToPrint = [[[sender mainFrame] frameView] documentView];
   printOp = [NSPrintOperation printOperationWithView:viewToPrint
                                            printInfo:printInfo];
   [printOp setShowPanels:NO];
   [printOp runOperation];

The assertion is caused by [printOp runOperation].

Does anyone have an idea how to solve this problem? Is this the appropriate mailing list for this question, or would cocoa-dev be more appropriate?

Best regards,
  Christian

_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-dev

Reply via email to