PDF 表单提交到 .Net Core Web API,返回结果

问题描述

我在 C# 中创建了一个 .net core web api 控制器,它从表单上的提交按钮接受 FDF 格式的 PDF 表单数据。 因为我的控制器试图将数据存储在数据库中,所以我想向表单返回成功/失败状态,该状态应该显示用户。 该表单是常规的 Acrobat 表单(因此不是 Web 表单)并且是从浏览器填写的。 我有 read 关于返回带有 /Status 的 FDF 数据,但还没有找到如何将该信息转换为 web api,这对我来说很新。

解决方法

您可以返回 Adob​​e 接受的 PdfResult。返回值必须基于提交文档的位置。这是我的 mvc 控制器

        [AllowAnonymous]
        [HttpPost]
        public PdfResult SubmitForm(string Browser)
        {
            using (var sr = new StreamReader(Request.InputStream))
            {
                var fdfStream = sr.ReadToEnd();
                var fieldsDict = _pdfFormService.ExtractFieldsText(fdfStream);

                var formJson = JsonConvert.SerializeObject(fieldsDict);

                var clientId = fieldsDict["client-id"];
                var agencyId = fieldsDict["agency-id"];
                var username = fieldsDict["username"];
                var formId = fieldsDict["form-id"];
                _pdfFormService.SubmitForm(int.Parse(agencyId),username,int.Parse(clientId),int.Parse(formId),formJson);

                var document = PdfHelper.BuildSuccessPdf();

                if (Browser == "Browser")
                    return document.ExportAsActionResult("success.pdf",HttpContext.ApplicationInstance.Response,HttpReadType.Open);
                else
                    return document.ExportAsActionResult("success.pdf",HttpReadType.Save);
            }
        }

我找到了 PDF 结果的定义和 document.ExportAsActionResult 扩展方法 here