public async Task <FileStreamResult> ExportToPdf(string htmlContent, bool rotate)
        {
            var pageSize       = rotate ? PageSize.A4.Rotate() : PageSize.A4;
            var convertRequest = new ConvertRequest
            {
                Content = htmlContent,
                Footer  = PdfFormation.PageNumberFooterTemplate
            };

            var pdfConverter = new PdfHtmConverter(convertRequest);
            var memoryStream = pdfConverter.ManipulatePdf(pageSize);

            var guid                = Guid.NewGuid();
            var outputFilePath      = $"report_{guid}.pdf";
            var finalOutputFilePath = $"final_report_{guid}.pdf";

            await PdfFileWriter.SaveToFile(memoryStream, outputFilePath);

            _logger.LogInformation($"Saved pdf file {outputFilePath}");

            pdfConverter.DecoratePdf(outputFilePath, finalOutputFilePath);
            var response = PdfFileReader.ReadFrom(finalOutputFilePath);

            FileOperator.Delete(outputFilePath);
            _logger.LogInformation($"Deleted pdf file {outputFilePath}");
            FileOperator.Delete(finalOutputFilePath);
            _logger.LogInformation($"Deleted pdf file {finalOutputFilePath}");

            return(new FileStreamResult(response, "application/pdf"));
        }
示例#2
0
        public void SalvarLista(Lista lista, string caminhoArquivo)
        {
            ListaPub listaPublicacao = null;

            Execute(d => { listaPublicacao = d.CarregarListaPublicacao(lista.IdLista); });
            PdfFileWriter.WriteToPdf(caminhoArquivo, Model, listaPublicacao);
            System.Diagnostics.Process.Start(caminhoArquivo);
        }