| 139 | |
| 140 | |
| 141 | === 3. Boost Documant Library development === |
| 142 | Potential mentors: Antony Polukhin |
| 143 | |
| 144 | ==== Background ==== |
| 145 | |
| 146 | Document Library is meant for integration with spreadsheet applications Excel/LibreOfficeCalc/OpenOfficeCalc and other [http://en.wikipedia.org/wiki/Office_suite office programs]. |
| 147 | Main idea is to unify APIs of different Office suits and provide a clear header only library that is capable of doing simple tasks with office documents (creation, pdf exporting, file format changes, data extraction and cells manipulations). Such library is essential for banking software, CRMs and many other programs. |
| 148 | |
| 149 | ==== GSoC project proposal ==== |
| 150 | |
| 151 | Develop a Boost.Document Library from scratch. |
| 152 | |
| 153 | This project requires a good C++ knowledge, generic programming. Experience with Office's API would be an advantage. |
| 154 | |
| 155 | |
| 156 | Implement a generic wrapper around one of the existing Office suits. Wrapper must have the following methods: |
| 157 | {{{ |
| 158 | struct format { |
| 159 | enum type { |
| 160 | PDF, |
| 161 | }; |
| 162 | }; |
| 163 | |
| 164 | void open(const filesystem::path& path); // opens a document |
| 165 | void export(const filesystem::path& filename, format::type format = format::PDF); // exports a document in specified format |
| 166 | }}} |
| 167 | |
| 168 | `export` function must be able to export in PDF format at least. Other formats support is welcomed. Prototypes that are able to work with different Office suits will be highly appreciated. |
| 169 | |
| 170 | Prototype must be submitted with unit tests and build notes. |
| 171 | |
| 172 | Submission of the programming test should be via copying and pasting the parts you wrote into the end of the proposal you submit to Google Melange. |
| 173 | |