public void JsonBase() { using (var template = new MemoryStream(InvoiceJsonBaseExcel)) { var builder = new JsonReportBuilder(template); builder.Build(JToken.Parse(InvoiceJsonBaseJson), Stream.Null, SaveFileFormat.Pdf); } }
private static void BuildFromInvoiceJson() { using (var reader = new StreamReader(new FileStream("Invoice.json", FileMode.Open))) using (var stream = new FileStream("Invoice.xlsx", FileMode.Open)) using (var output = File.Create("output.pdf")) { var builder = new JsonReportBuilder(stream); builder.Build(reader, output, SaveFileFormat.Pdf); } }
private static void BuildFromInvoiceRequest() { using (var reader = new JsonTextReader(new StreamReader(new FileStream("request.json", FileMode.Open)))) using (var stream = new FileStream("Invoice.xlsx", FileMode.Open)) using (var output = File.Create("output.pdf")) { var request = JToken.Load(reader); var data = request["Data"]; var builder = new JsonReportBuilder(stream); builder.Build(data, output, SaveFileFormat.Pdf); } }
public static async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req, [Blob("templates/Invoice.xlsx", FileAccess.Read)] Stream template, [Blob("reports", FileAccess.Write)] CloudBlobContainer outputContainer, ILogger log) { await outputContainer.CreateIfNotExistsAsync(); var fileName = $"{Guid.NewGuid()}.pdf"; var cloudBlockBlob = outputContainer.GetBlockBlobReference(fileName); var builder = new JsonReportBuilder(template); // 1. 引数の「template」Streamからビルダーを生成 using (var input = new StreamReader(req.Body, Encoding.UTF8)) // 2. HTTP RequestボディからTextReaderを生成 using (var output = await cloudBlockBlob.OpenWriteAsync()) { builder.Build(input, output, SaveFileFormat.Pdf); // 3. JsonReportBuilder } return(new OkObjectResult(fileName)); }