Esempio n. 1
0
 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));
        }