Personalización por programación: el delegado BookPrint
Tal como se ha mencionado anteriormente, al generar un PDF, en la cabecera de la portada por defecto se incluye un logotipo de PTC que se proporciona mediante el parámetro XSLT imageUrl.
El valor del parámetro se puede personalizar mediante BookPrintDelegate.java. Si un usuario se conecta a un contexto de grupo de servicio, se puede proporcionar una imagen para el grupo de servicio en lugar de la imagen por defecto. La imagen debe encontrarse en un formato soportado por PDF, como PNG, y ser de resolución adecuada para la copia impresa.
Para que se inserte la imagen personalizada, el delegado debe proporcionar una ubicación personalizada y una imagen personalizada. En DefaultBookPrintDelegate.java se proporciona la implementación por defecto para el delegado.
En esta clase se proporciona una implementación por defecto de la API getLogoPart que no espera ningún parámetro y devuelve la ruta del logotipo en un formato String. La implementación por defecto llama a tres métodos privados:
• getCustomLogoUrl: se devuelve la ruta para el logotipo personalizado. La implementación por defecto devuelve null, pero el código de muestra está presente dentro del método de referencia. Para configurar el logotipo personalizado, se debe crear una carpeta personalizada en ${enigma.work.home}/Applications/PrintServer/Config/ para que contenga la imagen personalizada.
// Sample code to return custom logo download.png in folder custom
private String getCustomLogoUrl() {
String baseUrl = StringResolver.resolve("${enigma.work.home}/Applications/PrintServer/Config/");
if (baseUrl != null) {
return baseUrl + "custom/download.png";
}
• getLogoAssociatedWithSG: se devuelve la ruta del logotipo asociado al grupo de servicio si el logotipo personalizado no está disponible.
• getDefaultLogoUrl: se devuelve la ruta por defecto del logotipo si el logotipo personalizado y el logotipo asociado con SG no están disponibles.