gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: PDFKit code


From: Andy Somogyi
Subject: Re: PDFKit code
Date: Tue, 1 Mar 2011 08:29:33 -0500

This is awesome,

I've been toying with the idea of writing a Cocoa based DJVU reader for a while, basically I wanted to follow Preview. There is a great app on SF called Skim, which is a PDF viewer. Obviously it uses PDFKit. My basic idea was to write something that would plug into Skim with minimal fuss. 

A while back, I tried to hook into PDFKit by writing my own PDFDocument / PDFPage class, and using PDFKit to do the layout. Apparently the problem was the PDFKit documentation is pretty grim, and I never really figured out how this would work. 

Then I downloaded this code. This code does the layout and drawing using Apple's PDFDocument / PDFPage classes. So, it turns out that it is actually fairly straightforward to implement your own document / page classes. The code here has behavior which looks like is pretty compatible with Apple's PDFKit. 

This is actually a really cool design. Basically, one can write a Document / Page classes for any type of content that should be displayed in page layout form, and this code performs all the layout and drawing. This layout code I think could also form the basis for a word processor type app. 

GNUStep guys: how do feel about a free version of a Preview type app built using this layout code?

Most of the code here looks pretty portable, there are only a few areas where it uses CoreGraphics, which from what I understand is not supported 'yet' in GNUStep. 


On Feb 20, 2011, at 8:38 PM, Ultra Vga wrote:

Hello,

Attached are clean room implementations of the basics of PDFKit including PDFView, PDFMatteView, and PDFDisplayView. Currently it still uses Apple's PDFDocument and PDFPage, but it should not be too hard to wrap these interfaces around the poppler library. These have been created by listing all the methods of each original Apple class with objective-c introspection, creating new classes, and one by one implementing each method until it could display a document. 
This is a project based on Apple's sample pdf viewer application in which I created replacement versions of all the display classes.

Most document navigation / display features are working such as scrolling, zoom, 1/2 page single and continuous displays, layout, notifications and so forth.

There are still a few methods to implement in PDFView, but it fully functional and handles all drawing and layout. These have been painstakingly engineered to be 100% compatible with Apple's PDFKit. There is a LOT of layout code in PDFView, and I think it could serve as the basis for ANY document centric app such as a word processor or so forth. Basically, anything that could implement the PDFDocument/PDFPage interfaces could be displayed in this class. This could serve as the basis for a really great Preview type app.

There still is some work to be done in PDFView: not all methods are implemented, magnify/zoom is sometimes a bit jumpy when the last page is zoomed, rotated pages (angles other than 0 degrees) are not displayed entirely correct, and annotations and selects are not implemented. 

I'm releasing these as public domain, feel free to use them as you see fit. 

enjoy


<PDFKitViewer.tar.gz>_______________________________________________
Gnustep-dev mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/gnustep-dev


reply via email to

[Prev in Thread] Current Thread [Next in Thread]