I am interested in using the iTextSharp C# library in a very minimal way. We have some pdf templates (think "Certificates of Achievement") for which we need to fill three fields: an ID, date, and name. I would like to write an ASP.NET page in which these values would be posted, the pdf template filled and formatted (via iTextSharp) and served to the user. This functionality is a small piece of a larger code base, built on very old, home-grown code unique to our institution and environment. If this single page uses iTextSharp under AGPL, what am provisions am I obligated to make?

  • Does this mean that all of the code base I am maintaining needs to become open-source under AGPL?
  • Just the single ASP.NET page?
  • If the page is never displayed to the user (they are just prompted to download a pdf), do I still need to place some kind of contractual language in the comments of the code of the page?

1 Answer 1


The crucial part is the remote network interaction clause in the AGPLv3.0:

[…] if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source […]

What is a modified version? This is explained in Section 0 “Definitions”:

To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work.

The GPL and its variants are typically interpreted so that they not only apply to single components, but on the scale of larger software systems, in particular on the scale of executable programs or processes. We can therefore reason:

  • Your website software would load the AGPL-covered library (iTextSharp).
  • Therefore, your website is based on the AGPL-covered library and is in this sense a modified version. While you have not modified the library, it is the inclusion of the library into your software that creates a work based on the covered library.
  • Users interact with your website over a network (it is a website, after all).
  • Therefore, you would have to offer any visitors the complete Corresponding Source of the website. This includes any scripts etc. that are necessary to run the website.

If this sounds unattractive, you have the following alternatives:

  • Do not use the AGPL-covered library.
  • Acquire a different license for the library.
  • Integrate the library in a manner so that your website is not covered by the AGPL.

The last point may be achieved if the library is used by a separate process than your website, e.g. when the library is only used by a command line tool or a distinct microservice. Then only that program would be AGPL-covered, not your main website. It could still be argued that users are interacting remotely with that process because they trigger a PDF to be created for their download. You should therefore still offer the Corresponding Source for that program. The Corresponding Source does not include your template; you may keep that private in any scenario.

  • 1
    Employee of iText Software here. I just discovered this question by accident because I wanted to collect as many hats in the Winter Bash as possible. I approve of this answer. Dec 12, 2018 at 15:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.