2013-08-01 4 views
1

Я пытаюсь разработать форму, которую пользователи могут заполнить и отправить мне обратно, чтобы я мог собирать данные. Форма должна иметь 2 таблицы с переменным количеством строк. Мы использовали MS Word, но хотим быть более нейтральными к платформе. Что-то вроде .PDF. Некоторые пользователи не будут иметь интернет-соединение, поэтому им нужно будет отправить его по электронной почте. Я пробовал Adobe FormsCentral и любил их функцию сбора данных, но функции формы, которые я использовал, работали только в HTML и нуждались в подключении к Интернету.Сбор данных из формы .PDF

Если я использую Adobe LiveCycle для создания формы, мне нужен способ сбора данных из нее. Я не хочу тратить $ 80 тыс. На Forms Pro, который якобы позволил бы мне собрать данные. Кто-нибудь нашел продукт или написал что-то, чтобы взять данные (XML) из формы .PDF и поместить его в базу данных SQL Server?

Спасибо, Paul

+0

мне сказали, что мне нужно, чтобы перефразировать вопрос – Paul

ответ

0

C# Я в конечном итоге создать LiveCycle РФ форму, которая отправляет данные 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; 
} 
2

У вас есть много вопросов, свернутые в один вопрос. Я бы посоветовал вам изучить PDF и Adobe и узнать, что вы можете и чего не можете сделать с тем, что вы описали.

Существует несколько типов PDF-форм - Acroforms (статические), статические формы XFA и динамические формы XFA. на основе вашего описания вам нужен динамический XFA (вы говорите переменное количество строк).

Вы также запрашиваете автономную обработку, что означает, что форма должна быть «Reader Enabled», чтобы позволить удаленному пользователю фактически сохранять данные в форме.

Для этого вам понадобится инструмент, который может создать «Adobe Reader Enabled Dynamic XFA Form» - только Adobe Lifecycle Designer может его создать, но вам нужно прочитать их лицензию на то, как вы можете распространять эту форму для пользователей.

Что касается обработки динамической стороны сервера XFA Form для извлечения данных, вы можете посмотреть iText. Он может извлекать XML из PDF, и вы можете делать то, что хотите, с этим XML (разбор/поместить в базу данных/независимо).

+0

я начал форму и иметь его когда пользователь нажимает кнопку отправки, он просто отправляет данные XML. Мне интересно, есть ли утилита SQL-сервера, чтобы просто вытащить XML-файл в таблицы базы данных. – Paul

Смежные вопросы