コード例 #1
0
        ///<Summary>
        /// GetHTML method to get HTML
        ///</Summary>
        public string GetHTML(string fileName, string folderName)
        {
            Opts.AppName    = "Editor";
            Opts.FileName   = fileName;
            Opts.FolderName = folderName;
            Opts.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name;

            try
            {
                var doc = new Document(Opts.WorkingFileName);
                var so  = new HtmlSaveOptions()
                {
                    DocumentType           = Pdf.HtmlDocumentType.Html5,
                    RasterImagesSavingMode = Pdf.HtmlSaveOptions.RasterImagesSavingModes.AsPngImagesEmbeddedIntoSvg,
                    SplitCssIntoPages      = false,
                    //CustomCssSavingStrategy = new HtmlSaveOptions.CssSavingStrategy(SaveCss),
                    //CustomStrategyOfCssUrlCreation = new HtmlSaveOptions.CssUrlMakingStrategy(CreateCssUrl),
                    //CustomResourceSavingStrategy = new HtmlSaveOptions.ResourceSavingStrategy(SaveResources)
                };
                using (var stream = new MemoryStream())
                {
                    doc.Save(stream, so);
                    // FIX the overwlow of span-elements in some documents
                    return(UTF8WithoutBom.GetString(stream.ToArray()).Replace("letter-spacing:-107374182.4pt;", ""));
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return(null);
            }
        }
コード例 #2
0
        /// <summary>
        /// Common method for 'Page' and 'Print'
        /// </summary>
        /// <param name="doc"></param>
        /// <param name="pageNumber">Starts with one</param>
        /// <returns></returns>
        private PageView PreparePageView(Document doc, int pageNumber)
        {
            var so = new HtmlFixedSaveOptions()
            {
                ExportEmbeddedFonts  = true,
                ExportEmbeddedImages = true,
                ExportEmbeddedCss    = true,
                CssClassNamesPrefix  = "pg" + pageNumber,
                ShowPageBorder       = false,
                Encoding             = UTF8WithoutBom,
                PageCount            = 1,
                PageIndex            = pageNumber - 1
            };

            using (var stream = new MemoryStream())
            {
                doc.Save(stream, so);
                var pageInfo = doc.GetPageInfo(pageNumber - 1);
                var size     = pageInfo.GetSizeInPixels(1, 72);
                return(new PageView()
                {
                    width = size.Width,
                    height = size.Height,
                    angle = 0,
                    number = pageNumber,
                    data = UTF8WithoutBom.GetString(stream.ToArray()).Replace("letter-spacing:-107374182.4pt;", "")
                });
            }
        }
コード例 #3
0
        ///<Summary>
        /// GetHTML method to get HTML
        ///</Summary>
        public string GetHTML(string fileName, string folderName)
        {
            Opts.AppName    = "Editor";
            Opts.FileName   = fileName;
            Opts.FolderName = folderName;
            Opts.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name;

            try
            {
                var doc = new Document(Opts.WorkingFileName);
                var so  = new HtmlSaveOptions(SaveFormat.Html)
                {
                    ExportFontsAsBase64  = true,
                    ExportImagesAsBase64 = true,
                    CssStyleSheetType    = CssStyleSheetType.Inline,
                    Encoding             = UTF8WithoutBom,
                    HtmlVersion          = HtmlVersion.Html5
                };
                using (var stream = new MemoryStream())
                {
                    doc.Save(stream, so);
                    // FIX the overwlow of span-elements in some documents
                    return(UTF8WithoutBom.GetString(stream.ToArray()).Replace("letter-spacing:-107374182.4pt;", ""));
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return(null);
            }
        }
コード例 #4
0
 /// <summary>
 /// Common method for 'Page' and 'Print'
 /// </summary>
 /// <param name="doc"></param>
 /// <param name="pageNumber">Starts with one</param>
 /// <returns></returns>
 private PageView PreparePageView(Document doc, int pageNumber)
 {
     using (var stream = new FileStream(Config.Configuration.OutputDirectory + Opts.FolderName + $"/page{pageNumber}.html", FileMode.Open))
         using (var memoryStream = new MemoryStream())
         {
             stream.CopyTo(memoryStream);
             var pageInfo = doc.Pages[pageNumber];
             var size     = pageInfo.Rect;
             return(new PageView()
             {
                 width = size.Width,
                 height = size.Height,
                 angle = 0,
                 number = pageNumber,
                 data = UTF8WithoutBom.GetString(memoryStream.ToArray()).Replace("letter-spacing:-107374182.4pt;", "")
             });
         }
 }