Generar archivo PDF desde java

Hola a todos, hoy les vengo a mostrar una forma para crear un archivo en pdf desde código java. Es de recordar que se modificaría según las necesidades de cada uno y el cuerpo del texto solo mencionare lo más relevante

--Generar PDF
private String generarPDF(File dir, int a, String b, boolean envio) {

String nameFile = dir.getName();
String nameFilePdf = "";

String bodyHtml = obtainHtmlFile(nameFile, a,b, envio);

try {
Document document = new Document(PageSize.A4);
@SuppressWarnings("unused")
PdfWriter pdfWriter = PdfWriter.getInstance(document, new FileOutputStream(dir.getPath() + nameFile + ".pdf"));
document.open();
document.addCreationDate();

HTMLWorker htmlWorker = new HTMLWorker(document);
htmlWorker.parse(new StringReader(new String(bodyHtml.getBytes(), "UTF-8")));
document.close();
nameFilePdf = nameFile + ".pdf";

   } catch (Exception e) {
     e.printStackTrace();
   }

return nameFilePdf;

}

/**
* To obtain a html letter to Bank
* @return
*/
private String obtainHtmlFile(String nameFile, int a, int b, boolean envio) {

SimpleDateFormat sdf = new SimpleDateFormat("MMMM dd 'de' yyyy");
StringBuilder html = new StringBuilder();
Calendar cal = Calendar.getInstance();
Date dateNow = cal.getTime();

html.append("<html xmlns='http://www.w3.org/1999/xhtml'>");
html.append("<head>");
html.append("<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />");
html.append("</head>");
html.append("<body>");
html.append("<p>Bogot&aacute;, " + sdf.format(dateNow) + "</p>");
html.append("<br>");
html.append("<br>");
html.append("<p>Se&ntilde;ora</p>");
html.append("<p>Pepito Perez</p>");
html.append("<p>Ciudad</p>");
html.append("<br>");
html.append("<br>");
html.append("<p>REF: Env&iacute;o de PDF " +  "</p>");
html.append("<p>Cordial Saludo,</p>");
html.append("<br>");
html.append("</body>");
html.append("</html>");

return html.toString();
}

Espero les sea de ayuda y hasta una próxima oportunidad

Comentarios