Well Still who ever wants want to work can work on that. It will be their credit. GSc is not the only way.
On Tue, Apr 17, 2012 at 12:24 PM, mehdi houshmand <med1...@gmail.com> wrote: > Ok, well, disappointingly we've missed the deadline to submit a proposal > and review said proposal. Thanks for all the support from everyone, sorry > we couldn't arrange it this year. > > Mehdi > > On 10 April 2012 08:22, mehdi houshmand <med1...@gmail.com> wrote: > > > Hi Tharaka, > > > > Sorry for the slow response, my bad, I don't have any worthwhile excuse > > other than it's holiday season over here. As for the proposal, thats > fine, > > I'd be happy with that proposal. If no one else has any comments on this, > > I'd suggest moving writing this up on google-melange and getting the ball > > rolling. > > > > Keep up the good work, > > > > Mehdi > > > > > > On 5 April 2012 08:45, Tharaka Nayanajith Wijebandara < > > tharaka...@gmail.com> wrote: > > > >> Hi, > >> > >> Thank you very much for your feedbacks and suggestions. > >> > >> After going through all of your feedbacks, I modified the proposal with > >> them and used some my own ideas also. Additionally, I included the > >> proposed > >> time line of the project and I would like to see your comments here. > >> > >> > >> *Project Title* > >> > >> Implement PDF object inspector and enhance features of PDFReader GUI. > >> > >> > >> *Abstract* > >> > >> PDFReader is small GUI application which comes with Apache PDFBox pure > >> java > >> PDF library. Currently it is only capable of rendering PDFs. This > project > >> is to redesign PDFReader GUI with a plugin framework and implement some > >> developer oriented features for it. Primary objectives of project are as > >> follows. > >> > >> (1). Design a plugin framework for the PDFReader. > >> > >> (2). Implement PDF basic viewing features. (Zooming, rotating, page > >> thumbnail viewer) > >> > >> (3). Implement a PDF object inspector to display PDF object properties. > >> > >> (4). Implement Export command for converting PDFs into different file > >> formats (JPEG, PNG, TXT). > >> > >> > >> > >> *Project Details* > >> > >> * > >> * > >> > >> PDFBox already has so many features required, but currently most of them > >> only available for developers and from command line. Aim of this project > >> is > >> extending PDFReader into well designed application which allows access > to > >> some PDFBox features through GUI and integrating some developer oriented > >> features. However, project itself is not going to consider GUI access to > >> all available PDFBox features. Instead of that it re-architects > PDFReader > >> into pluggable application which developer can easily integrate other > >> features by developing plugins. > >> > >> > >> In that case, most important primary objective of the project is > designing > >> a simple plugin framework for the PDFReader. In the implementation, we > can > >> use JAR Service Provider mechanism as the base of the plugin framework. > >> For > >> that first, it's required to identify what are pluggable classes which > is > >> going to use in the application and define interfaces for those classes > >> with the basic methods. Then we can implement some mechanism for plugin > >> developer to define what are the classes to use, and where (which > >> JAR/directory) to load them from. When application loads, it will check > >> specific locations for plugins and create instance of those plugins > using > >> class loader. Here after application can use those plugin instances as > >> components of application itself. > >> > >> > >> Rotating and zooming functions are basic features which is available in > >> every PDF viewer and it allow user to view PDF pages from different > >> perspectives. However current PDFReader is unable to provide those > >> features. This project will address to this problem as part of second > >> primary objective by implementing some menu commands for those features. > >> In > >> the implementation, it will be matter of changing some codes in > PageDrawer > >> and other related class which are responsible to render PDF pages using > >> Java2D. > >> > >> > >> Other interesting feature which is going to archive as another part of > >> second objective is developing page thumbnail viewer for the PDFReader. > >> This will be cool GUI component for user to navigate through the PDF > >> Document very easily. It will be image list which has small image of the > >> every PDF page of the current document with page numbers. User can > simply > >> click on the image to jump the particular page. This component will be > >> developed as plugin for PDFReader and user will be able to show and hide > >> using the menu command. > >> > >> > >> Third objective is implementing an object inspector for PDFReader and it > >> will be very much useful to developer who wants to debug PDF documents. > >> User can enable click one the any object on the PDF viewer and then in a > >> small window, it will show the information about particular object while > >> highlighting the object inside the viewer. As an example if user click > on > >> image of the PDF it will show the information such as image size, color > >> space, resolution and bit depth. If object is text, it will show the > >> details about font, color space and color values. In implementation this > >> also will be developed as another plugin for the PDFReader. > >> > >> > >> Export feature is last primary objective which I'm going to implement > >> within this project and it also will be developed as several plugins. As > >> most of the available software, it's good idea to add 'Export' menu item > >> into file menu. This menu item will have submenu which contains > different > >> commands for different file formats (JPEG, PNG, TXT) and each of those > >> commands will popup small dialog box which allows user to change export > >> settings such as page range, password, encoding type, file name and > >> location. After change those settings, user can simply click 'OK' button > >> of > >> the settings dialog box to start the converting process. Every command > for > >> particular file format will be developed as a plugin and in future > >> developers can easily integrate commands for new file formats to convert > >> PDFs. > >> > >> > >> In addition to these primary objectives there are few secondary > objectives > >> which I'm going to consider with this project and major one will be the > >> 'Add Text' feature. It will allow user to draw textbox in any place of > the > >> PDF page and type new text. There will be Small window or view will > appear > >> in this mode and user can change the font size, color and other related > >> properties. These new text objects will added to PDF page by inserting > new > >> optional content group to the page and in case user wants to remove or > >> edit > >> this newly added text, it's possible before saving PDF permanently. > >> > >> > >> > >> Add 'print' menu item, develop plugin for mange (add, edit, delete) > >> bookmarks and View for the basic PDF properties will be the set of > another > >> secondary objectives which I'm going to look at within this project. > Since > >> most of them are already available in command line, it will be easy to > add > >> those features as plugins for GUI if there will be enough time after > >> achieving primary objectives. > >> > >> > >> > >> *Benefits to PDFBox* > >> > >> Most of the modern code libraries are delivered with GUI application to > >> test the features before studying API. However, features of PDFBox are > >> mostly accessible through the command line interface and it discourages > >> users and new developers from using PDFBox. By having GUI for access > these > >> features any user can simply use them and developer can test the > features > >> without going through the code. Since designing plugin framework is a > >> primary objective of the project, developers will be able to easily > append > >> new features for GUI in future. > >> > >> PDF object inspector will be great tool for developer and it will make > >> easy > >> debugging PDFs. Furthermore, it will help to new developers to study the > >> structure of PDF file and understanding PDFBox core functionalities. > >> > >> > >> > >> *Project Timeline and Deliverables* > >> > >> *May 21 - May 28* > >> > >> · Read and understand the current PDFReader Code > >> > >> · Create basic design for plugin framework > >> > >> *May 28 - Jun 08* > >> > >> Discuss plugin framework design with community > >> > >> *Jun 08 - Jun 18* > >> > >> Implement plugin framework > >> > >> *Jun 18 - Jun 25* > >> > >> Code some basic examples and test cases for plugin > >> framework > >> > >> *Jun 25 - Jul 02* > >> > >> Implement basic zooming and rotating features > >> > >> *Jul 02 - Jul 09* > >> > >> Implement page thumbnail viewer > >> > >> *Jul 09 - Jul 11* > >> > >> Study and Create design for Object Inspector > >> > >> *Jul 12 - Jul 13* > >> > >> Submit mid-term evaluation > >> > >> *Jul 13 - Jul 23* > >> > >> Implement PDF Object Inspector > >> > >> *Jul 23 - Jul 30* > >> > >> Implement export PDF feature > >> > >> *Jul 30 - Aug 06* > >> > >> Implement some secondary objectives > >> > >> *Aug 06 - Aug 13* > >> > >> Test, debug the code and complete documentation > >> > >> *Aug 13 - Aug 20* > >> > >> Submit the design and conclusion > >> > >> > >> > >> *Exams and other commitments* > >> > >> I have semester end examination of University from 28th May to 8th June. > >> After that I can work fulltime (40+ hours per week) on this project > until > >> end. > >> > >> > >> > >> > >> On Wed, Apr 4, 2012 at 12:44 PM, mehdi houshmand <med1...@gmail.com> > >> wrote: > >> > >> > > > >> > > > >> > > <snip> > >> > > How about just implementing the "add text" feature? That should be > >> > > relatively easy. Add a new optional content group to the page and > add > >> > > all text as part of that. That makes this a cool tool to fill out > >> forms > >> > > that were scanned, or that are not AcroForms. I fully agree that the > >> > > replace feature is going to be tough, relatively speaking. > >> > > > >> > > >> > Yeah, my bad here, I shouldn't have missed it but I'm inclined to > agree > >> > with Andreas. If we implemented deleting text, it could get pretty > >> tricksy, > >> > especially when CID coded fonts are used. This is a perfect candidate > >> of a > >> > secondary objective. > >> > > >> > > >> > > I wouldn't put the bar too high for this project. Get some > low-hanging > >> > > fruit that adds some cool and useful functionality to the GUI. More > >> can > >> > > always be added later. > >> > > > >> > > More ideas for low-hanging fruit (as additional tasks if you end up > >> with > >> > > spare time after the main objectives above): > >> > > - Allow the "Save As..." menu item not only save a modified PDF, but > >> > > also bitmaps (PNG, JPEG), plain text and HTML (i.e. from text > >> > extraction). > >> > > That would make a plug-in for each output format, so we could add > >> others > >> > > later. > >> > > - Add a "Print..." menu item. > >> > > - Integrate preflight as a plug-in into the application. > >> > > - Split, concatenate, page reorder, page rotation (not just viewing > >> but > >> > > modifying the PDF), overlay/underlay. > >> > > - Menu item: "Create PDF from image(s)" and "Add page from image". > >> > > - A dialog/view listing the fonts in the PDF. > >> > > - A dialog/view for the basic PDF properties like in Acrobat's > >> > > Properties Dialog. > >> > > - A dialog/view listing all images with their properties and > effective > >> > > resolution in the PDF. > >> > > - I could go on and on... :-) I'm seeing a serious itch going to > catch > >> > > me once you've set up a good base for that GUI. I'm so looking > forward > >> > > to this! > >> > > > >> > > Anyway, points 1 and 2 will be the most important tasks because they > >> > > provide the basis for easily adding additional functionality. > >> > > > >> > > >> > Yeah, those look like good tasks, maybe we'll add the two you suggest > to > >> > the primary objectives and the rest into secondary or even tertiary > >> > objectives. It's good to see you getting geared up for this Jeremias, > >> we're > >> > no doubt going to call on your expertise ;-). > >> > > >> > Thanks for the support > >> > > >> > Mehdi > >> > > >> > >> > >> > >> -- > >> Thanks & Regards, > >> Tharaka Wijebandara, > >> Faculty of Information Technology, > >> University of Moratuwa. > >> > > > > >