Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从.PDF表单收集数据_C#_Pdf_Livecycle_Xfa - Fatal编程技术网

C# 从.PDF表单收集数据

C# 从.PDF表单收集数据,c#,pdf,livecycle,xfa,C#,Pdf,Livecycle,Xfa,我正在尝试开发一个表单,用户可以填写并提交给我,这样我就可以收集数据。表单需要有两个表,表中的行数可变。我们使用的是微软Word,但我们希望更加平台中立。类似于.PDF的东西。一些用户没有互联网连接,因此他们需要通过电子邮件提交。我尝试了AdobeFormScentral,喜欢他们的数据收集功能,但我使用的表单功能只在HTML中工作,需要互联网连接 如果我使用AdobeLiveCycle创建表单,那么我需要一种从表单中收集数据的方法。我不想把8万美元花在Forms Pro上,因为据信它可以让我收

我正在尝试开发一个表单,用户可以填写并提交给我,这样我就可以收集数据。表单需要有两个表,表中的行数可变。我们使用的是微软Word,但我们希望更加平台中立。类似于.PDF的东西。一些用户没有互联网连接,因此他们需要通过电子邮件提交。我尝试了AdobeFormScentral,喜欢他们的数据收集功能,但我使用的表单功能只在HTML中工作,需要互联网连接

如果我使用AdobeLiveCycle创建表单,那么我需要一种从表单中收集数据的方法。我不想把8万美元花在Forms Pro上,因为据信它可以让我收集数据。是否有人找到了一个产品或编写了一些东西,从.PDF表单中获取数据XML并将其放入SQL Server数据库

谢谢,
保罗

你有很多问题都集中在一个问题上。我建议你学习PDF和Adobe,了解你能做什么,不能做什么

PDF表单有几种类型—Acroforms静态表单、静态XFA表单和动态XFA表单。根据您的描述,您需要动态XFA,即可变行数

您还请求脱机处理,这意味着表单必须启用读卡器,以允许远程用户将数据实际保存到表单中

因此,您需要一个可以创建启用Adobe Reader的动态XFA表单的工具—只有Adobe Lifecycle Designer可以创建该表单,但您需要阅读他们的许可证,了解如何将该表单分发给用户


至于处理动态XFA表单服务器端以提取数据,您可以查看。它可以从PDF中提取XML,您可以使用XML解析/放入数据库/任何东西来做您想做的事情。

C我最终创建了一个LiveCycle XFA表单,用于提交XML数据,然后使用以下代码阅读此电子邮件

        XDocument xDoc = XDocument.Load(xml.FullName);


        IEnumerable<XElement> monthlyReportElements = from el in xDoc.Descendants("MonthlyReportForm") select el;

        foreach (XElement el in monthlyReportElements)
        {
            teamName = Helper.GetElement("TeamName", el, true);
            reportingDate = string.Format("{0}-{1}", Helper.GetElement("ReportingYear", el, true), Helper.GetElement("ReportingMonth", el, true));
            pdfVersion = Helper.GetElement("FileVersionField", el, true);
            supervisorEmail = Helper.GetElement("SupervisorEmail", el, true);

            return true;
        }

 internal static string GetElement(string elementName, XElement xElement, bool required)
{
    if (xElement == null
        || string.IsNullOrEmpty(elementName)
        || xElement.Element(elementName) == null
        || xElement.Element(elementName).Value == null)
    {
        if (required)
            throw new Exception(string.Format("Required element '{0}' is missing", elementName));
        else
            return string.Empty;
    }
    return xElement.Element(elementName).Value;
}

有人告诉我需要重新编写问题,我已经启动了表单,并在用户单击submit按钮时进行了设置,它只是提交了XML数据。我想知道是否有一个SQL server实用程序可以将XML文件拉入数据库表中。