-1

チェックボックス、ラジオボタン、ドロップダウン、テキストボックスを持つPDFファイルを解析したい.そして、PDFファイルを解析して、これらの各コントロールの位置と値を取得したい. 私はC#とitextsharpを使用しています

どんな提案やアイデアも役に立ちます。

これまでに行ったこと参照: http://simpledotnetsolutions.wordpress.com/2012/04/08/itextsharp-few-c-examples/

   public void ReadPDFformDataPageWise(string inputFile)
    {
        PdfReader reader = new PdfReader(inputFile);
        AcroFields form = reader.AcroFields;
        try
        {
            for (int page = 1; page <= reader.NumberOfPages; page++)
            {
                foreach (string key in form.Fields.Keys)
                {
                    switch (form.GetFieldType(key))
                    {
                        case AcroFields.FIELD_TYPE_CHECKBOX:
                            //Create Checkbox
                        case AcroFields.FIELD_TYPE_COMBO:
                        //Create Combo Box
                        case AcroFields.FIELD_TYPE_LIST:
                        //Create List
                        case AcroFields.FIELD_TYPE_RADIOBUTTON:
                        //Create Radio button
                        case AcroFields.FIELD_TYPE_NONE:
                        case AcroFields.FIELD_TYPE_PUSHBUTTON:
                        //Create Submit Button
                        case AcroFields.FIELD_TYPE_SIGNATURE:
                        //Create Signature
                        case AcroFields.FIELD_TYPE_TEXT:
                            //Create textbox/Qs header
                            int fileType = form.GetFieldType(key);
                            string fieldValue = form.GetField(key);
                            float[] a = form.GetFieldPositions(key);
                            string translatedFileName = form.GetTranslatedFieldName(key);
                           AcroFields.Item test=  form.GetFieldItem(key);

                            break;
                    }
                }
            }
        }
        catch
        {
        }
        finally
        {
            reader.Close();
        }
    }
4

1 に答える 1

2

公式の Web サイトではなく、なぜ非公式の例を参照しているのですか?

http://itextpdf.com/examples/iia.php?id=121を参照して、AcroForm 内のすべてのフィールドをリストし、それらの名前とタイプを取得する方法を確認してください。チェックボックスまたはラジオ フィールドがある場合は、同じ例に示すように外観状態を取得する必要があります。

各フィールドのページ番号と位置を知りたい場合は、次の例が必要です: http://itextpdf.com/examples/iia.php?id=163

FieldPositionインスタンスを取得するメソッドを探します。

フィールド (パスワード フィールド、複数行など) に設定されているフラグについて詳しく知りたい場合は、次の例をご覧ください: http://itextpdf.com/examples/iia.php?id=237

あなたが言うなら:ミスター・ロワギー、あなたは私にJavaで例を与えていて、私はC#の答えしか受け入れないので、私はあなたの答えに反対票を投じます!にアクセスしてください: http://sourceforge.net/p/itext/code/HEAD/tree/book/

本の例をすべて C# に移植することに投資しました。ディレクトリ ツリーをたどって対応する例を見つけるだけです。例: http://sourceforge.net/p/itext/code/HEAD/tree/book/src/part2/chapter06/FormInformation.java

あなたの例がどれも機能しないと言う場合、フォームは AcroForm ではなく XFA フォームである可能性があります。その場合、「フィールドの位置」というものはありません。XFA を使用すると、PDF ファイルは XML テンプレートとデータ セットのコンテナーとして機能します。この XML はオンザフライでレンダリングされ、各フィールドの位置はデータセットによって異なります。質問が XFA に関するものである場合は、再考してください。

自分で解決策を探す努力をしなかったことを明らかにする質問をするのではなく、私が書いた本を読んで得たはずの知識を共有しているので、この回答にはお金がかかることに注意してください;-)

私はその質問に反対票を投じませんでしたが、他の誰かがそうする理由は理解しています。

于 2013-01-27T10:23:39.027 に答える