I'm not familiar with much code beyond the parser and outline (aka 
bookmarks), but I can say that the parser has a plethora of examples of 
edge cases.  This is due to the very large number of documents which do 
not conform to the PDF specification.  So, in terms of real-world 
experience of how the theory (PDF spec) doesn't match the real world 
(non-conforming PDFs), it's an excellent example.

As for the class structure, inheritance, code re-use and so forth, I have 
only had time to deal with the specific things which I need to 
fix/enhance/extend, so I don't have a feel for the bigger picture. 
However, I haven't come across anything which I thought was poorly 
designed, so I'm inclined to say that it is well done.

Another thing to pay attention to are the patches, especially the 
bugfixes.  It shows how one person solved the problem, and then a better 
way to do it.  So you not only learn the best way to do it, but why.  For 
a quick example of this, check out Martijn's patch for PDFBOX-908: 
https://issues.apache.org/jira/browse/PDFBOX-908

---- 
Thanks,
Adam



From:
Kevin Brown <[email protected]>
To:
[email protected]
Date:
04/12/2011 10:28
Subject:
Off Topic: pdfbox a good example of a project from which to learn?



For those who have worked on or examined the code for this project -- do 
you
think that it is a well put together project, which might be good for a 
Java
programmer to study to improve coding and design ability?



- FHA 203b; 203k; HECM; VA; USDA; Conventional 
- Warehouse Lines; FHA-Authorized Originators 
- Lending and Servicing in over 45 States 
www.swmc.com   -  www.simplehecmcalculator.com   Visit  www.swmc.com/resources  
 for helpful links on Training, Webinars, Lender Alerts and Submitting 
Conditions  
This email and any content within or attached hereto from Sun West Mortgage 
Company, Inc. is confidential and/or legally privileged. The information is 
intended only for the use of the individual or entity named on this email. If 
you are not the intended recipient, you are hereby notified that any 
disclosure, copying, distribution or taking any action in reliance on the 
contents of this email information is strictly prohibited, and that the 
documents should be returned to this office immediately by email. Receipt by 
anyone other than the intended recipient is not a waiver of any privilege. 
Please do not include your social security number, account number, or any other 
personal or financial information in the content of the email. Should you have 
any questions, please call (800) 453 7884.  

Reply via email to