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(); }
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); }
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>(); }
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(); }