Boa Tarde
Preciso de ajuda para gerar PDF de um boleto em Html.
ja tentei de varias maneiras:
Microsoft.Office.Interop.Word
Application wordApp = new Application(); // Arquivo de Origem object filename = @"C:\Users\14302\Desktop\boleto.html"; // Arquivo de Destino object newFileName = @"C:\arquivo.pdf"; object missing = System.Type.Missing; // Abrir documento Document doc = wordApp.Documents.Open(ref filename, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); // Formato para Salvar o Arquivo - Destino - No caso, PDF object formatoArquivo = WdSaveFormat.wdFormatPDF; // Alterações no tamanho do Papel - No caso, utilizando o formato A4 doc.PageSetup.PaperSize = Microsoft.Office.Interop.Word.WdPaperSize.wdPaperA4; // Alterações na Orientação do Papel doc.PageSetup.Orientation = Microsoft.Office.Interop.Word.WdOrientation.wdOrientPortrait; //Outras configurações do arquivo doc.PageSetup.LeftMargin = 20; doc.PageSetup.RightMargin = 0; doc.PageSetup.LayoutMode = WdLayoutMode.wdLayoutModeGrid; // Salvar Arquivo doc.SaveAs(ref newFileName, ref formatoArquivo, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); // Não salvar alterações no arquivo original object salvarAlteracoesArqOriginal = false; wordApp.Quit(ref salvarAlteracoesArqOriginal, ref missing, ref missing);Resultado:
O código de barras é gerado errado!
PDFizer
Pdfizer.HtmlToPdfConverter htmlToPdf = new Pdfizer.HtmlToPdfConverter(); htmlToPdf.Open(fluxo); htmlToPdf.Run(html);/*** htmlToPdf.Close();Erro: Unable to cast object of type 'iTextSharp.text.Table' to type 'iTextSharp.text.Cell'.
iTextSharp 4.1.2
public void WritePdf(string html, string destination) { MemoryStream ms = CreatePdf(html); FileStream fs = File.OpenWrite(destination); fs.Write(ms.GetBuffer(), 0, ms.GetBuffer().Length); fs.Close(); ms.Close(); } public static MemoryStream CreatePdf(string html) { MemoryStream m = new MemoryStream(); try { Document document = new Document(PageSize.LETTER); PdfWriter.GetInstance(document, m); StringReader sr = new StringReader(html); XmlTextReader xtr = new XmlTextReader(sr); document.Open(); HtmlParser.Parse(document, xtr); xtr.Close(); document.Close();/*** } catch (Exception ex) { System.Diagnostics.EventLog.WriteEntry("Application", ex.Message); throw ex; } return m; }
Erro: The document has no pages.
OBS: Todas essas alternativas funcionam para html's mais simples, só que eu não posso alterar o html!
Erros ocorrem nas linhas com /***.
Alguma solução ou alternativa(Free)?
Abraços