User Tools

Site Tools


gsoc:google-summer-code-2024-openprinting-projects

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
gsoc:google-summer-code-2024-openprinting-projects [2024/01/18 19:27]
till
gsoc:google-summer-code-2024-openprinting-projects [2024/01/19 03:26]
till
Line 139: Line 139:
  
 =====Replace QPDF by PDFio as PDF manipulation library in libcupsfilters (cfFilterPDFToPDF() filter function and others)===== =====Replace QPDF by PDFio as PDF manipulation library in libcupsfilters (cfFilterPDFToPDF() filter function and others)=====
 +
 +Like CUPS, libcupsfilters is principally written in regular C and not in %%C++%%. We want to avoid %%C++%% as it has often problems with binary compatibility and the mechanism with which the Debian/​Ubuntu build services auto-detect dependencies between Debian packages, get very awkward with %%C++%%.
 +
 +But libcupsfilters still depends on one library which is written in %%C++%%, QPDF, a library for manipulating PDF files: Scaling up and down, moving around on the page, rotating, combining several source pages on one destination page, turning filled PDF forms into straight PDF, ... QPDF is used by the filter functions cfFilterPDFToPDF(),​ cfFilterBannerToPDF(),​ cfFilterGSToRaster(),​ and cfFilterRasterToPDF().
 +
 +
 +
 +
 +
 +
 +
 +The PDFio project is about completely eliminating the need of QPDF, which is a PDF manipulation library written in %%C++%% from libcupsfilters by replacing it with PDFio, a PDF manipulation library written completely in regular C. This makes libcupsfilters being completely in regular C and not using any %%C++%% any more. %%C++%% has often problems with binary compatibility and the mechanism with which the Debian/​Ubuntu build services auto-detect dependencies between Debian packages, get very awkward with %%C++%%.
 +
 +But for such a switchover we must take into account that QPDF is a complex and sophisticated project with a lot of features (it got even new features by two GSoC projects of OpenPrinting) while PDFio is a young project run as one of the many small projects by Michael Sweet and we must be very careful to see whether it does not miss any important feature. Especially we must look after correct printing of filled-in PDF forms and PDF annotations.
 +
 +So part of the project will be investigation of suitability and perhaps also work with Mike to get needed features added.
  
 =====CPDB backend for IPP infrastructure/​cloud printers===== =====CPDB backend for IPP infrastructure/​cloud printers=====
gsoc/google-summer-code-2024-openprinting-projects.txt ยท Last modified: 2024/04/01 09:28 by till