Spring 2017 Project Work
Table of Contents
1 Summer 2016
- This semester our project is on PDF editors.
- https://en.wikipedia.org/wiki/Portable_Document_Format#Technical_overview Required Reading.
- FOSS PDF Tools/ Libraries: ICEpdf, iText, jPod, PDFBox, PDFClown, pdfedit, PDFSharp, Poppler. Written in C++, C# or Java. Web search for links. (Please help to make this list exhaustive.)
- No solid comparison is available. Web-search for "anecdotal" comments.
- I am leaning toward (i) iText, (ii) jPod, (iii) PDFbox, in that
order.
sloccount
s have not been a serious factor. But, relevant.- Quality of API docs mattered.
- Popularity mattered. Written in Java mattered. Recent activity mattered.
- If you know better, post your opinion on Piazza.
1.1 Expectations of our PDF-project
- Start with (or build afresh) a pdf-viewer-editor that can
- Read "real world PDF documents" (that may slightly deviate from the PDF-spec).
- Split a PDF file into several, e.g., by page.
- Extract text (Accuracy is important).
- Edit Annotations.
- Search for words and position a cursor.
- Write the software engineering documents as outlined in Project Work.
- Focus on the chosen library (one of iText, jPod, …), and develop assertions. Revise the code applying good smells, and refactoring, discussed in the course.
1.2 Non-Expectations
- Not expected: Edit a pdf file as if editing a MSWord document. E.g., not expected to be available: replace one word with another, insert/ delete a word
- Not expected: Accept input from a stylus/pen. Handwriting. Freehand drawing.
- Rendering – leave it alone.
1.3 A Target
- http://www.tracker-software.com/product/pdf-xchange-editor Try this freeware. Can we duplicate the functionality of this? Even if we cannot compete with its speed.
1.4 Alternate Project Possibilities
- http://sourceforge.net/projects/freemind/. Written in Java. Here is wiki describing https://en.wikipedia.org/wiki/Mind_map programs, in general.
- https://sourceforge.net/projects/pdfedit/ Written in C++. PDF manipulation. "Free editor for PDF documents. Complete editing of PDF documents is possible with PDFedit. You can change raw pdf objects (for advanced users) or use many gui functions. Functionality can be easily extended using a scripting language (ECMAScript)."
2 Spring 2016
A dir-sync program tries to make two directories become equal by copying/deleting files from one dir to another.
http://sourceforge.net/projects/directorysync/
sloccount src_dirsyncpro java=22445, nbproject xml=1310;