1

データを収集できるように、ユーザーが入力して送信できるフォームを開発しようとしています。フォームには、行数が可変の 2 つのテーブルが必要です。MS Word を使用していましたが、よりプラットフォームに依存しないようにしたいと考えています。.PDFのようなもの。一部のユーザーはインターネットに接続していないため、電子メールで提出する必要があります。Adobe FormsCentral を試してみて、データ収集機能が気に入りましたが、使用していたフォーム機能は HTML でしか機能せず、インターネット接続が必要でした。

Adobe LiveCycle を使用してフォームを作成する場合、フォームからデータを収集する方法が必要です。データを収集できると思われる Forms Pro に 80,000 ドルを費やしたくありません。.PDF フォームからデータ (XML) を取得して SQL Server データベースに格納するための製品を見つけた、または何かを作成した人はいますか?

ありがとう、ポール

4

2 に答える 2

2

多くの問題が 1 つの質問にまとめられています。PDF と Adob​​e を勉強して、あなたが説明したことでできることとできないことを学ぶことをお勧めします。

PDF フォームには、Acroforms (静的)、静的 XFA フォーム、動的 XFA フォームなど、いくつかの種類があります。あなたの説明に基づいて、動的XFAが必要です(可変行数と言います)。

また、オフライン処理を要求します。これは、リモート ユーザーが実際にデータをフォームに保存できるように、フォームが「リーダー対応」である必要があることを意味します。

したがって、「Adobe Reader Enabled Dynamic XFA Form」を作成できるツールが必要です。これを作成できるのは Adob​​e Lifecycle Designer だけですが、そのフォームをユーザーに配布する方法については、ライセンスを読む必要があります。

データを抽出する動的 XFA フォーム サーバー側の処理については、iTextを参照してください。PDF から XML を抽出でき、その XML を使用して必要なことを実行できます (解析/データベースへの挿入など)。

于 2013-08-02T17:57:01.173 に答える
0

C# 最終的に、XML データを送信する LiveCycle XFA フォームを作成し、次のコードを使用してこのメ​​ールを読みました

        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;
}
于 2014-04-01T22:24:45.367 に答える