Esempio n. 1
0
        private static async Task Main()
        {
            var htmlToPdfGenerator = new HtmlToPdfDocumentGenerator(new SmallHtmlGenerator());
            var configuration      = new WkHtmlToXConfiguration((int)Environment.OSVersion.Platform, null);

            using (var engine = new WkHtmlToXEngine(configuration))
            {
                engine.Initialize();
                var doc = htmlToPdfGenerator.Generate();

                if (!Directory.Exists("files"))
                {
                    Directory.CreateDirectory("files");
                }

                var converter = new PdfConverter(engine);
#pragma warning disable SEC0112 // Path Tampering Unvalidated File Path
#pragma warning disable SCS0018 // Potential Path Traversal vulnerability was found where '{0}' in '{1}' may be tainted by user-controlled data from '{2}' in method '{3}'.
#pragma warning disable CC0022  // Should dispose object
                using var stream = new FileStream(
                          Path.Combine("Files", $"{DateTime.UtcNow.Ticks.ToString(CultureInfo.InvariantCulture)}.pdf"),
                          FileMode.Create);
#pragma warning restore CC0022  // Should dispose object
#pragma warning restore SCS0018 // Potential Path Traversal vulnerability was found where '{0}' in '{1}' may be tainted by user-controlled data from '{2}' in method '{3}'.
#pragma warning restore SEC0112 // Path Tampering Unvalidated File Path
                var converted = await converter.ConvertAsync(doc, _ => stream, CancellationToken.None).ConfigureAwait(false);

                Console.WriteLine(converted);
            }

            Console.ReadKey();
        }
Esempio n. 2
0
        public EngineTest()
        {
            _configuration            = new WkHtmlToXConfiguration((int)Environment.OSVersion.Platform, null);
            _libraryLoaderMock        = new Mock <ILibraryLoader>();
            _libraryLoaderFactoryMock = new Mock <ILibraryLoaderFactory>();
            _libraryLoaderFactoryMock
            .Setup(l => l.Create(It.IsAny <WkHtmlToXConfiguration>()))
            .Returns(_libraryLoaderMock.Object);

            _pdfModuleMock    = new Mock <IWkHtmlToPdfModule>();
            _pdfProcessorMock = new Mock <IPdfProcessor>();
            _pdfProcessorMock.SetupGet(p => p.WkHtmlToPdfModule)
            .Returns(_pdfModuleMock.Object);

            _imageModuleMock    = new Mock <IWkHtmlToImageModule>();
            _imageProcessorMock = new Mock <IImageProcessor>();
            _imageProcessorMock.SetupGet(p => p.WkHtmlToImageModule)
            .Returns(_imageModuleMock.Object);

            _sut = new WkHtmlToXEngine(
                _configuration,
                _libraryLoaderFactoryMock.Object,
                _pdfProcessorMock.Object,
                _imageProcessorMock.Object);
        }
Esempio n. 3
0
 public void ConfigureServices(IServiceCollection services)
 {
     services.Configure <MaxConcurrentRequestsOptions>(Configuration.GetSection(nameof(MaxConcurrentRequestsOptions)));
     services.AddControllers();
     services.AddSingleton(sp =>
     {
         return(new WkHtmlToXConfiguration((int)Environment.OSVersion.Platform, null));;
     });
     services.AddSingleton <IWkHtmlToXEngine, WkHtmlToXEngine>(sp =>
     {
         var config = sp.GetRequiredService <WkHtmlToXConfiguration>();
         var engine = new WkHtmlToXEngine(config);
         engine.Initialize();
         return(engine);
     });
     services.AddSingleton <IPdfConverter, PdfConverter>();
     services.AddSingleton <PdfService>();
 }
Esempio n. 4
0
        public StartupFixture()
        {
            var configuration = new ConfigurationBuilder()
                                .AddJsonFile("appsettings.json")
                                .Build();

            var services = new ServiceCollection();

            services.AddSingleton(sp =>
            {
                return(new WkHtmlToXConfiguration((int)Environment.OSVersion.Platform, null));;
            });
            services.AddSingleton <IWkHtmlToXEngine, WkHtmlToXEngine>(sp =>
            {
                var config = sp.GetRequiredService <WkHtmlToXConfiguration>();
                var engine = new WkHtmlToXEngine(config);
                engine.Initialize();
                return(engine);
            });
            services.AddSingleton <IPdfConverter, PdfConverter>();
            services.AddSingleton <PdfService>();

            ServiceProvider = services.BuildServiceProvider();
        }