コード例 #1
0
ファイル: IPdfRenderer.cs プロジェクト: gbanister/Viewer
        public byte[] HtmlToPdf(string html, string pathToLogo, ExportContentType exportType)
        {
            var pdfConverter = GetPdfConverter(pathToLogo, exportType);
            var imageBaseUrl = _siteBaseUrl + "/images/";

            return pdfConverter.GetPdfBytesFromHtmlString(html, imageBaseUrl);
        }
コード例 #2
0
ファイル: IPdfRenderer.cs プロジェクト: gbanister/Viewer
        private PdfConverter GetPdfConverter(string pathToLogo, ExportContentType exportType)
        {
            var result = new PdfConverter
            {
                UseCrossRefStreams = false,
                AvoidImageBreak = true
            };
            result.PdfDocumentOptions.TopMargin = 15;
            result.PdfDocumentOptions.BottomMargin = 15;
            result.PdfDocumentOptions.RightMargin = 20;
            result.PdfDocumentOptions.LeftMargin = 20;
            result.PdfDocumentOptions.PdfPageSize = PdfPageSize.Letter;
            result.PdfDocumentOptions.PdfPageOrientation = exportType == ExportContentType.Data ? PDFPageOrientation.Landscape : PDFPageOrientation.Portrait;
            result.PdfDocumentOptions.PdfCompressionLevel = PdfCompressionLevel.Best;
            result.PdfDocumentOptions.GenerateSelectablePdf = true;
            result.PdfDocumentOptions.ShowFooter = true;
            result.PdfFooterOptions.ShowPageNumber = true;

            result.PdfDocumentOptions.ShowHeader = true;

            System.Drawing.Image logoImag = System.Drawing.Image.FromFile(pathToLogo);
            result.PdfHeaderOptions.AddImageArea(new ImageArea(0,0, logoImag.Width, logoImag));

            result.PdfDocumentOptions.JpegCompressionEnabled = true;
            result.PdfDocumentOptions.JpegCompressionLevel = 50;
            if (!string.IsNullOrEmpty(_converterLisenceKey))
            {
                try
                {
                    result.LicenseKey = _converterLisenceKey;
                }
                catch
                {
                    //swallow
                }
            }
            return result;
        }