I have this string:
<HTML><HEAD></HEAD><body><FORM method="post"><table><tr><td>Nome:</td><td>JOÃO DA SILVA</td></tr><tr><td>NOME:</td><td>MARCOS ALVES</td></tr></table></BODY></HTML>
saved in a table and need to press export to pdf in a compressed (.zip) format , using some api free . Is it possible?
I've implemented George Wurthmann's great answer below, but as mentioned the project available in GitHub as an example generates the PDF displaying the HTML tags, I believe it's some detail in the code:
AndhereIhaveadaptedthecodeaccordingtomyneeds,changingthestringcontainingtableHTMLfixedinthecodeforareturnofatableofthedatabase:
[HttpPost]publicActionResultGetPdfFileZiped(ProcessamentoRegistrospProcessamentoRegistros){pProcessamentoRegistros.IdProcessamentoDiario=1;pProcessamentoRegistros.IdRegistro=1;pProcessamentoRegistros.IdServico=2;ProcessamentoRegistros_processamento=_IRepositorio.ObterProcessamentoRegistros(pProcessamentoRegistros);vardoc=newDocument(PageSize.A4.Rotate());varstream=newMemoryStream();varpw=PdfWriter.GetInstance(doc,stream);varminhaStringHTML=_processamento.DocumentoHtml;//@"<HTML><HEAD></HEAD><body><FORM method='post'><table><tr><td></td></tr></table></BODY></HTML>";
doc.Open();
Paragraph paragrafo = new Paragraph(minhaStringHTML, new Font(Font.NORMAL, 12));
paragrafo.Alignment = Element.ALIGN_LEFT;
doc.Add(paragrafo);
doc.Close();
using (var compressedFileStream = new MemoryStream())
{
//Cria um arquivo ZIP
using (var zipArchive = new ZipArchive(compressedFileStream, ZipArchiveMode.Update, false))
{
//Criar a entrada do PDF para o arquivo ZIP
var zipEntry = zipArchive.CreateEntry("MeuPDFZipado.pdf");
//Pegando o stream do PDF em memória
using (var originalFileStream = new MemoryStream(stream.ToArray()))
{
using (var zipEntryStream = zipEntry.Open())
{
//Copia o stream do PDF para o ZIP
originalFileStream.CopyTo(zipEntryStream);
}
}
}
return new FileContentResult(compressedFileStream.ToArray(), "application/zip") { FileDownloadName = "Filename.zip" };
}
}
This is HTML table:
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<script language=javascript>
//function MudarPagina() {
// window.history.back();
//}
</script>
</HEAD>
<!--body bgcolor=white onBlur=MudarPagina();-->
<body bgcolor=white>
<FORM method="post" style="BACKGROUND-COLOR: white">
<!--FORM name="Imprimir" method="post" style="BACKGROUND-COLOR: white"-->
<br>
<table>
<tr>
<td align=center><a href="javascript:window.print();"><IMG src="https://www.sifge.caixa.gov.br/Empresa/Crf/images/botimprimir.gif"border=0></a><ahref="javascript:window.history.back();"><IMG src="https://www.sifge.caixa.gov.br/Empresa/Crf/images/botvoltar.gif"border=0></a></td></tr><tr><td><tablewidth="75%" CELLSPACING=0 CELLPADDING=10 border=1 align=center bordercolorlight="#FFFFFF" bordercolordark="#CCCCCC">
<tr>
<td>
<TABLE WIDTH=100% BORDER=0 CELLSPACING=0 CELLPADDING=0 style="color: black" class=txtcentral>
<tr>
<td align=left><IMG border="0" src="https://www.sifge.caixa.gov.br/Empresa/Crf/images/caixa.gif"width=180height=44></td></tr><tr><tdcolspan=2> </td></tr><tr><tdalign=rigth><spanstyle="font-size: 13pt" align=center><strong>Certificado de Regularidade do FGTS - CRF</strong></span></td>
</tr>
</table>
<TABLE WIDTH=100% BORDER=0 CELLSPACING=0 CELLPADDING=0 style="color: black" class=txtcentral>
<tr><td colspan=2> </td></tr>
<tr><td colspan=2> </td></tr>
<tr>
<TD width=22%><font style=" font-family: Verdana;font-size:10pt"><strong>Inscrição:</strong></font></TD>
<TD ><font style=" font-family: Verdana;font-size:8pt">08439659/0001-50</font></TD>
</tr>
<tr>
<td width=22% valign=top nowrap><font style=" font-family: Verdana;font-size:10pt"><strong>Razão Social:</strong></font></TD>
<td><font style=" font-family: Verdana;font-size:8pt">CPFL ENERGIAS RENOVAVEIS S A</font></TD>
</tr>
<tr>
<td width=22% nowrap><font style=" font-family: Verdana;font-size:10pt"><strong>Nome Fantasia:</strong></font></TD>
<td ><font style=" font-family: Verdana;font-size:8pt">CPFL RENOVAVEIS</font></TD>
</tr>
<tr>
<td width=22% valign=top><font style=" font-family: Verdana;font-size:10pt"><strong>Endereço:</strong></font></TD>
<td ><font style=" font-family: Verdana;font-size:8pt">AV DOUTOR CARDOSO DE MELO 1184 ANDAR 7 / VILA OLIMPIA / SAO PAULO / SP / 4548-004</font></TD>
</tr>
<tr><td colspan=2> </td></tr>
<tr><td colspan=2> </td></tr>
<tr>
<TD colspan=2 style="text-align: justify"><font style=" font-family: Verdana;font-size:10pt">A Caixa Econômica Federal, no uso da atribuição que lhe confere o Art. 7, da
Lei 8.036, de 11 de maio de 1990, certifica que, nesta data, a empresa acima identificada
encontra-se em situação regular perante o Fundo de Garantia do Tempo de Serviço - FGTS.
</font>
</TD>
</tr>
<tr><td colspan=2> </td></tr>
<tr><td colspan=2> </td></tr>
<tr>
<td style="text-align: justify" colspan=2><font style=" font-family: Verdana;font-size:10pt">O presente Certificado não servirá de prova contra cobrança de quaisquer débitos referentes
a contribuições e/ou encargos devidos, decorrentes das obrigações com o FGTS.</font>
</td>
</tr>
<tr><td colspan=2> </td></tr>
<tr><td colspan=2> </td></tr>
<tr>
<td colspan=2><font style=" font-family: Verdana;font-size:10pt"><strong>Validade: </strong>28/02/2017 a 29/03/2017</font></TD>
</tr>
<tr><td colspan=2> </td></tr>
<tr>
<td colspan=2><font style=" font-family: Verdana;font-size:10pt"><strong>Certificação Número: </strong>2017022805233090232330</font></TD></TR>
<tr><td colspan=2> </td></tr>
<tr><td colspan=2> </td></tr>
<tr>
<TD colspan=2><font style=" font-family: Verdana;font-size:10pt">Informação obtida em 15/03/2017, às 17:14:51.</font></TD>
</tr>
<tr><td colspan=2> </td></tr>
<tr><td colspan=2> </td></tr>
<tr>
<TD style="text-align: justify" colspan=2><font style=" font-family: Verdana;font-size:10pt">A utilização deste Certificado
para os fins previstos em Lei está condicionada à verificação de
autenticidade no site da Caixa: <strong>www.caixa.gov.br</strong></font></TD>
</tr>
</TABLE>
</form>
</td></tr></table>
</td>
</tr>
</table>
<script language=javascript>
//window.print();
</script>
</BODY>
</HTML>