Quiero desarrollar un editor de pdf en línea, ¿qué debo aprender?

Como dijo Richard en su respuesta, debe conocer dos partes, la del cliente y la del servidor. Solo quiero poner más aclaraciones sobre estos dos.

El lado del cliente significa lo que se ejecutará en el navegador del usuario. Obviamente, su PDF debe ser procesado en el navegador. Por lo tanto, necesitará un lenguaje de script del lado del cliente. En el caso de las cosas del lado del cliente, siempre elija JavaScript o jQuery (que es una biblioteca JS). Flash y Java están obsoletos hace mucho tiempo y tienen muchos problemas. También hay otras opciones, pero como novato, debes ignorarlas.

En el lado del servidor de esto, las cosas se complican demasiado. Es común confundirse al aprender esta parte. Lo que esta parte hace es obtener información almacenada en la base de datos web y proporcionarla al lado del cliente. También acepta la solicitud del cliente, como alteración o recuperación o datos. Aunque eso no es todo, pero es principalmente lo que harás en tu proyecto. Así, por ejemplo, el servidor proporcionará el archivo pdf o la autenticación del usuario.
Ahora, qué lenguaje debe elegir para la programación del lado del servidor es controvertido. En teoría puedes usar cualquier lenguaje de programación. Sin embargo, sus elecciones deben depender del tipo de alojamiento que esté utilizando y del soporte que el proveedor de alojamiento le brinde para dichos lenguajes / marcos. Supongo que aquí está utilizando un proveedor de alojamiento en lugar de tener su propio servidor o una instancia virtual, ya que apenas está empezando.
En la mayoría de los casos, utilizará la pila LAMP (Linux Apache MySQL PHP). En este caso necesitas aprender php. La otra alternativa es tener un hosting de Windows. En el lado de las ventanas, puedes usar ASP .net y todas sus variaciones. Si está utilizando ASP .net, comience con MVC.
Si su proveedor de hosting soporta Node.js, le sugiero que use esto, ya que todo lo que necesita saber aquí es JavaScript que ya ha usado en el código del lado del cliente. También necesitarás NoSQL, pero eso no es tan difícil.
Otra opción más simple es usar Python en el servidor Django. Rubí sobre rieles también es una alternativa.

Hay dos partes en cualquier aplicación en línea: la parte que se ejecuta en el navegador web, el cliente y la parte que se ejecuta en un servidor. Generalmente necesitas diferentes lenguajes de programación para cada parte. Imagino que la mayoría de su aplicación se ejecutará en el cliente, por lo que desea un lenguaje de scripting del lado del cliente. Las opciones son javascript, flash, java y algunas opciones más exóticas como dart.

Me mantendría alejado de Java, tienen un régimen de seguridad muy estricto y todos los applets de Java necesitan certificados de seguridad antes de que se ejecuten y estos cuestan mucho dinero. Oracle básicamente ha matado el java-applet.

Javascript (un idioma completamente diferente) es probablemente el camino a seguir, es una plataforma madura, hay muchas bibliotecas disponibles, una búsqueda rápida muestra la biblioteca de Mozilla PDF.js para analizar y renderizar archivos PDF.

En el lado del servidor, tiene más opciones, se podría usar cualquier idioma que se ejecute en el servidor, consulte Scripts del lado del servidor. En teoría, podría usar C ++ trabajando con solicitudes CGI, pero será más trabajo que usar uno de los marcos. Es posible que su proveedor de alojamiento web le limite en lo que están preparados para respaldar.

Mire el código fuente de JodConverter, es un proyecto muerto pero le brinda una fuente completa para manejar todo tipo de documentos, incluidos los PDF. Está hecho en Java, pero en realidad creo que podría beneficiarse de conocer C ++ porque se basa en los Servicios de OpenOffice.