/// <summary> /// Generates a PDF into specified output <see cref="Stream" />. /// </summary> /// <param name="input">HTML content input stream.</param> /// <param name="output">PDF file output stream.</param> /// <param name="settings">wkhtmltopdf command line arguments.</param> public Task ConvertToPdfAsync(Stream input, Stream output, ConversionSettings settings) { if (input == null) { throw new ArgumentNullException(nameof(input)); } if (output == null) { throw new ArgumentNullException(nameof(output)); } if (settings == null) { throw new ArgumentNullException(nameof(settings)); } return(ConvertToPdfInternalAsync(input, output, settings.ToString(), settings.ExecutionTimeout)); }
/// <summary> /// Generates a PDF into specified output <see cref="Stream" />. /// </summary> /// <param name="input">HTML content input stream.</param> /// <param name="output">PDF file output stream.</param> /// <param name="settings">wkhtmltopdf command line arguments.</param> public void ConvertToPdf(Stream input, Stream output, ConversionSettings settings) { if (input == null) { throw new ArgumentNullException(nameof(input)); } if (output == null) { throw new ArgumentNullException(nameof(output)); } if (settings == null) { throw new ArgumentNullException(nameof(settings)); } ConvertToPdfInternal(input, output, settings.ToString(), settings.ExecutionTimeout); }
/// <summary> /// Generates a PDF using the specified HTML content and settings. /// </summary> /// <param name="html">The HTML content.</param> /// <param name="htmlEncoding">The encoding of the HTML content.</param> /// <param name="settings">A <see cref="ConversionSettings"/> instance.</param> public byte[] ConvertToPdf(string html, Encoding htmlEncoding, ConversionSettings settings) { if (settings == null) { throw new ArgumentNullException(nameof(settings)); } if (string.IsNullOrEmpty(html)) { return(Array.Empty <byte>()); } using (var input = new MemoryStream(htmlEncoding.GetBytes(html))) using (var output = new MemoryStream()) { ConvertToPdfInternal(input, output, settings.ToString(), settings.ExecutionTimeout); return(output.ToArray()); } }