1. WebSphere Portlet Factory Series ¿Cómo puedo cargar y mostrar un PDF desde un portlet? Por: Andrés Deza V.
2. Escenario Existe la necesidad de obtener la ruta donde se encuentra un archivo PDF (puede estar en un servidor FTP). Leer dicho archivo y mostrarlo en el browser.
4. La Receta Builders: 1 Variable Builder 1 Content Launch Action Builder 2 Method Builder 2 Action List Builder 1 Page Builder Resources: 1 Sample PDF File
5. Preparación Simularemos la carga de un archivo PDF desde una ruta fija. Esto mismo, con algunas modificaciones, se puede aplicar en situaciones reales. Aquí vamos!
6. Comenzaremos, creando una pagina de ejemplo. De la paleta de builders, escoger el builder Page. Darle como nombre testPage en sus propiedades. Presionar el botón Apply/Aplicar para guardar los cambios.
7. Como paso siguiente, crearemos un método nuevo que simulará el retorno de la ruta donde se encuentra nuestro PDF de ejemplo. Lo haremos de esta manera: Colocamos como nombre getFilePath Finalmente, colocamos lo siguiente en las secciónes Return Type y Method Body: Presionar el botón Apply/Aplicar para guardar los cambios.
8. Creamos una nueva variable, la cual almacenará la ruta devuelta Por el método getFilePath() Colocamos como nombre pathVar y como tipo String. Presionar el botón Apply/Aplicar para guardar los cambios.
9. A continuación, se creará el método que será el core de este ejemplo. Este se encargará de leer lo que encuentre en la ruta pasada como parámetro y crear un FileInputStream, el cual será finalmente mostrado en el browser. Creamos un nuevo método.
10. Colocamos como nombre readFileContentFromPath. Colocamos como único argumento del método :
11. En Return Type y Method Body: Como podemos apreciar, se llama al método launchContent, el cual será generado por el builder Content Launch Action creado mas adelante. Este método, se encarga practicamente de interpretar el contenido y según el tipo de contenido configurado en el Content Launch Action, indicarle al browser que plugin utilizar para mostrar dicho contenido.
12. No olvidemos los imports necesarios! En Import List, ingresar los siguientes valores :
13. Se creará un actionList el cual obtenga la ruta donde se encuentra nuestro archivo PDF. Una vez obtenida, se le pasará dicha ruta al método readFileContentFromPath, quien finalmente, mostrará el contenido en el browser. Colocamos como nombre setFilePath Colocamos lo siguiente en Actions:
14. Creamos un Content Launch Action, encargado de disparar la acción que muestra el archivo. Para este ejemplo, se disparará al dar click en un enlace colocado en nuestra página de ejemplo. Colocamos como nombre ContentLauncher Colocamos en Page: testPage y en Tag: namedTag Colocamos en Page Control Type: Link y en Link Text: Show File!
15. En Action Type: Link to an Action. En Content Load Action: setFilePath En Content Type: application/pdf Presionar el botón Apply/Aplicar para guardar los cambios.
16. Se creará un actionList el cual llame a la pagina testPage, para ser Mostrada inicialmente al correr el modelo. Colocamos como nombre main Colocamos lo siguiente en Actions:
17.
18. Pruebalo! Si todo sale bien, corre el modelo creado. Aparecerá una página con un enlace “Show File!”. Al dar click en dicho enlace, deberá abrirse el PDF de ejemplo que colocaste en la carpeta docs