Пример #1
0
        public async Task PrintOrdersToPdf(Stream stream, IList <Order> orders, string languageId = "", string vendorId = "")
        {
            if (stream == null)
            {
                throw new ArgumentNullException(nameof(stream));
            }

            if (orders == null)
            {
                throw new ArgumentNullException(nameof(orders));
            }

            _generatePdf.SetConvertOptions(new ConvertOptions()
            {
                PageSize    = Wkhtmltopdf.NetCore.Options.Size.A4,
                PageMargins = new Wkhtmltopdf.NetCore.Options.Margins()
                {
                    Bottom = 10, Left = 10, Right = 10, Top = 10
                },
                FooterHtml = CommonPath.WebMapPath(_orderFooter)
            });

            var html = await _viewRenderService.RenderToStringAsync <(IList <Order>, string)>(_orderTemaplate, new (orders, vendorId));

            var pdfBytes = _generatePdf.GetPDF(html);

            stream.Write(pdfBytes);
        }
Пример #2
0
        public async Task <IActionResult> GenerateCertificate(string ticket, string firstName, string lastName)
        {
            var connection = new Connection();
            var response   = connection.IsTicketNumberValid(ticket);

            if (response.IsValid)
            {
                var assembly = Assembly.GetEntryAssembly();
                using (var stream = assembly.GetManifestResourceStream("devfestcertapi.PDF.template.html"))
                    using (var reader = new StreamReader(stream))
                    {
                        string template = await reader.ReadToEndAsync();

                        var updatedtemplate = template
                                              .Replace("{attendee}", string.Format("{0} {1}", response.FirstName, response.LastName))
                                              .Replace("{ticketNumber}", ticket);
                        var options = new ConvertOptions();
                        options.IsLowQuality       = false;
                        options.PageMargins.Bottom = 0;
                        options.PageMargins.Left   = 0;
                        options.PageMargins.Right  = 0;
                        options.PageMargins.Top    = 0;
                        options.PageOrientation    = Wkhtmltopdf.NetCore.Options.Orientation.Landscape;

                        _generatePdf.SetConvertOptions(options);
                        var pdf = _generatePdf.GetPDF(updatedtemplate);
                        Response.Headers.Add("Content-Disposition", "inline; filename=GDGPH2020Certificate.pdf");
                        return(File(pdf.ToArray(), "application/pdf"));
                    }
            }
            return(new BadRequestResult());
        }
Пример #3
0
        public byte[] GeneratePdf(string url)
        {
            var image       = _imageService.GetImage(url);
            var htmlContent = GetImageHtml(image);

            return(_pdfService.GetPDF(htmlContent));
        }
Пример #4
0
        public IActionResult Get(string numeUser, int id)
        {
            string title = "";
            string image = "";

            foreach (var item in _context.Badges)
            {
                if (item.Id == id)
                {
                    title = item.Title;
                    image = item.ImageURL;
                }
            }
            var imagePath = Path.Combine(Directory.GetCurrentDirectory(), "Photo", "cooltext375106303841615.png");

            var html = new StringBuilder();

            html.Append("<html><body background='https://st3.depositphotos.com/4041239/12552/v/950/depositphotos_125524694-stock-illustration-decorative-border-and-golden-background.jpg' style='background-size:cover; background-repeat:none;'>");
            html.AppendLine("<h1 style='text-align: center; font-size: 50px; padding-top: 200px;'><b><i>Certificate of Training</i></b></h1>");
            html.AppendFormat("<img style='padding-left: 50%; margin-left: -130px;' src='{0}'/>", imagePath);
            html.AppendLine("<h1 style='text-align: center; font-size: 25px; padding-top: 50px;'><b><i>This is to certify that</i></b></h1>");
            html.AppendLine("<h1 style='text-align: center; font-size: 60px; padding-top: 30px;'><i>" + numeUser + "</i></h1>");
            html.AppendLine("<h1 style='text-align: center; font-size: 25px; padding-top: 30px;'><b><i>has successfully completed training in</i></b></h1>");
            html.AppendLine("<div style='position: absolute; left: 50%; margin-left: -350px;'><h1 style='font-size: 35px; width: 700px; text-align: center; padding-top: 50px;'><b><i>" + title + " Course</i></b></h1></div>");
            html.Append("<div style='padding-top: 250px;padding-left: 50%; margin-left: -66px'> <img width='133' height='134' src='" + image + "'/></div>");

            html.Append("</body></html>");
            var pdf             = _generatePdf.GetPDF(html.ToString());
            var pdfStreamResult = new MemoryStream();

            pdfStreamResult.Write(pdf, 0, pdf.Length);
            pdfStreamResult.Position = 0;

            return(new FileStreamResult(pdfStreamResult, "application/pdf"));
        }
Пример #5
0
        public async Task <byte[]> GenerateExamplePdf(string userName)
        {
            var model = new CertificateModel
            {
                Name           = userName,
                Date           = DateTime.Now.ToShortDateString(),
                BackgroundPath = $"{AppContext.BaseDirectory}MustacheTemplates/Certificate/certificate_bg.jpg"
            };

            var certificateContent = await ProcessTemplate
                                         (model, @"./MustacheTemplates/Certificate/ExampleCertificateTemplate.html");

            var options = new ConvertOptions
            {
                PageOrientation = Orientation.Landscape,
                PageMargins     = new Margins(0, 0, 0, 0),
            };

            _generatePdf.SetConvertOptions(options);

            var bytes = _generatePdf.GetPDF(certificateContent);

            // If you want to save file on disc
            // await File.WriteAllBytesAsync("file.pdf", bytes);

            return(bytes);
        }
        public IActionResult GetByHtml()
        {
            var html = @"<!DOCTYPE html>
                        <html>
                        <head>
                        </head>
                        <body>
                            <header>
                                <h1>This is a hardcoded test</h1>
                            </header>
                            <div>
                                <h2>456789</h2>
                            </div>
                        </body>";

            var pdf       = _generatePdf.GetPDF(html);
            var pdfStream = new System.IO.MemoryStream();

            pdfStream.Write(pdf, 0, pdf.Length);
            pdfStream.Position = 0;
            return(new FileStreamResult(pdfStream, "application/pdf"));
        }
Пример #7
0
        public IActionResult ExportPDFByHtml()
        {
            string strHtmlTemplate = @"<!DOCTYPE html>
                        <html>
                        <head>
                        </head>
                        <body>
                            <header>
                                <h1>Zoe</h1>
                            </header>
                            <div>
                                <h2>欢迎关注Code综艺圈</h2>
                            </div>
                        </body>";
            // 生成pdf
            var pdf           = _generatePdf.GetPDF(strHtmlTemplate);
            var pdfFileStream = new MemoryStream();

            pdfFileStream.Write(pdf, 0, pdf.Length);
            pdfFileStream.Position = 0;
            // 以文件流形式返回,类型设置为application/pdf,在浏览器中可以查看
            return(new FileStreamResult(pdfFileStream, "application/pdf"));
        }
Пример #8
0
        public IActionResult GetFormByteArray()
        {
            var options = new ConvertOptions
            {
                EnableForms = true
            };

            _generatePdf.SetConvertOptions(options);

            var pdf       = _generatePdf.GetPDF(formHtml);
            var pdfStream = new System.IO.MemoryStream();

            pdfStream.Write(pdf, 0, pdf.Length);
            pdfStream.Position = 0;
            return(new FileStreamResult(pdfStream, "application/pdf"));
        }
        public async Task <IActionResult> Post()
        {
            string body = string.Empty;

            using (var reader = new System.IO.StreamReader(Request.Body))
            {
                body = await reader.ReadToEndAsync();
            }

            if (string.IsNullOrWhiteSpace(body))
            {
                return(BadRequest());
            }

            var pdf       = _generatePdf.GetPDF(body);
            var pdfStream = new System.IO.MemoryStream();

            pdfStream.Write(pdf, 0, pdf.Length);
            pdfStream.Position = 0;
            return(new FileStreamResult(pdfStream, "application/octet-stream"));
        }
Пример #10
0
 public byte[] Generate(string htmlContent)
 {
     return(_generatePdf.GetPDF(htmlContent));
 }
Пример #11
0
        public IActionResult Get()
        {
            //var rng = new Random();
            //return Enumerable.Range(1, 5).Select(index => new WeatherForecast
            //{
            //    Date = DateTime.Now.AddDays(index),
            //    TemperatureC = rng.Next(-20, 55),
            //    Summary = Summaries[rng.Next(Summaries.Length)]
            //})
            //.ToArray();
            var imagePath = Path.Combine(Directory.GetCurrentDirectory(), "Assets", "jeydonx400.jpg");
            var html      = new StringBuilder();

            html.Append(@"<!doctype html>
                        <html lang='en'>
                        <head>

                   

                    <meta charset='utf-8'>
                       <meta name = 'viewport' content = 'width=device-width, initial-scale=1.0'>
                            <meta http-equiv='Content - type' content='text / html; charset='utf-8' /><meta charset='UTF-8' />
                                <title> document</title>


                             <style>
 @font-face  { font-family: font-family: 'Hind Siliguri', sans-serif; } 
table {
  font-family: arial, sans-serif;         
  border-collapse: collapse;
  width: 100%;
}

td, th {
  border: 1px solid #dddddd;
  text-align: left;
  padding: 8px;
}

/*tr:nth-child(even) {
  background-color: #dddddd;
}*/
</style>
                        <link href='https://fonts.maateen.me/bangla/font.css' rel='stylesheet'>

                      </head>
                         <body onload='getPdfInfo()'>");

            html.Append(@"<h2>test pdf generation</h2>");
            html.AppendFormat($"<img src='{imagePath}' width=40% />");
            // html.Append(@"<h2>আমরা কাটিয়ে উঠব</h2>");
            html.Append(@"<h2>HTML Table</h2>

<table>
  <tr>
    <th>Company</th>
    <th>Contact</th>
    <th>Country</th>
  </tr>
  <tr>
    <td>Alfreds Futterkiste</td>
    <td>Maria Anders</td>
    <td>Germany</td>
  </tr>
  <tr>
    <td>Centro comercial Moctezuma</td>
    <td>Francisco Chang</td>
    <td>Mexico</td>
  </tr>
  <tr>
    <td>Ernst Handel</td>
    <td>Roland Mendel</td>
    <td>Austria</td>
  </tr>
  <tr>
    <td>Island Trading</td>
    <td>Helen Bennett</td>
    <td>UK</td>
  </tr>
 <tr>
    <td>Island Trading</td>
    <td>Helen Bennett</td>
    <td>UK</td>
  </tr>
 <tr>
    <td>Island Trading</td>
    <td>Helen Bennett</td>
    <td>UK</td>
  </tr>
 <tr>
    <td>Island Trading</td>
    <td>Helen Bennett</td>
    <td>UK</td>
  </tr>
 <tr>
    <td>Island Trading</td>
    <td>Helen Bennett</td>
    <td>UK</td>
  </tr>
 <tr>
    <td>Island Trading</td>
    <td>Helen Bennett</td>
    <td>UK</td>
  </tr>
 <tr>
    <td>Island Trading</td>
    <td>Helen Bennett</td>
    <td>UK</td>
  </tr>
 <tr>
    <td>Island Trading</td>
    <td>Helen Bennett</td>
    <td>UK</td>
  </tr>
 <tr>
    <td>Island Trading</td>
    <td>Helen Bennett</td>
    <td>UK</td>
  </tr>
 <tr>
    <td>Island Trading</td>
    <td>Helen Bennett</td>
    <td>UK</td>
  </tr>
 <tr>
    <td>Island Trading</td>
    <td>Helen Bennett</td>
    <td>UK</td>
  </tr>
 <tr>
    <td>Island Trading</td>
    <td>Helen Bennett</td>
    <td>UK</td>

 <tr>
    <td>Island Trading</td>
    <td>Helen Bennett</td>
    <td>UK</td>
  </tr>
  </tr>
  <tr>
    <td>Laughing Bacchus Winecellars</td>
    <td>Yoshi Tannamuri</td>
    <td>Canada</td>
  </tr>
  <tr>
    <td>Magazzini Alimentari Riuniti</td>
    <td>Giovanni Rovelli</td>
    <td>Italy</td>
  </tr>
</table>");



            html.Append(@"<script>var pdfInfo = {};
  var x = document.location.search.substring(1).split('&');
  for (var i in x) { var z = x[i].split('=',2); pdfInfo[z[0]] = unescape(z[1]); }
  function getPdfInfo() {
    var page = pdfInfo.page || 1;
    var pageCount = pdfInfo.topage || 1;
    document.getElementById('pdfkit_page_current').textContent = page;
    document.getElementById('pdfkit_page_count').textContent = pageCount;
  }</script></body></html>");



            var pdf = _generatePdf.GetPDF(html.ToString());

            var pdfStreamResult = new MemoryStream();

            pdfStreamResult.Write(pdf, 0, pdf.Length);
            pdfStreamResult.Position = 0;
            return(new FileStreamResult(pdfStreamResult, "application /pdf"));
        }
        /// <inheritdoc/>
        public new byte[] PrepareDocument(IReportBodyDetails details)
        {
            var html = PrepareHtml(details);

            return(generatePdf.GetPDF(html));
        }