2017-05-09 10 views
0

私にはpdfがあります。 XFA:データセットのノードは次のようになります。空のxfa:datasetsとdd:DataDescriptionノードがないLiveCycle 11のXFAフォームを入力してください

<xfa:datasets xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/"><xfa:data xfa:dataNode="dataGroup" /></xfa:datasets> 

は、このように私は、基礎となるスキーマに関する情報を抽出することはできませんので、私はこれを埋めるためにXMLを生成することはできません。

PDFは、次のようにして、テーブルに行を追加するためにJavaScriptを使用しています:Xfa.TemplateSomでiTextSharpを使用して

this.resolveNode('document_table.Table3._user_input').addInstance(1);

、私はフォーム要素への参照を見つけることができます。 DomDocumentでは、xmlのさまざまな要素を検索して見つけることができますが、これは私が立ち往生した場所です。 XFAデータとの関係はないようですが、XFA Workerのデモを試してみました。デモではPDFにXFAデータがないことが確認されました。

XFAではなくAcroFieldsでない場合は、どのタイプのフォームであるかわかりません。

ブルーノ、私はあなたの本を買いましたが、私はそれをカバーするためにカバーしていませんでしたが、これまで私が知る限りこのシナリオはカバーしません。このタイプのフォームをどのように埋めることができるかについての洞察は、私はそれを感謝します。

現在、私はアクションを模倣し、データを設定するjavascriptを追加する必要があるのだろうかと思います。異なるレイアウトを持つフォームが多数あるので、それらをすべて手動で解析して階層を取得し、自分でjavascriptを複製することは面倒であり、率直に言ってこのアプローチが成功するかどうかはわかりません。

+0

あなたはBrunoからの回答のみを求めているのですか、他の人も回答できますか? –

+0

誰もが答えることができます、私はただブルーノを夢中にしていました、それは必要な人のように、男はiTextの質問詐欺マシンです! :) – Erikest

答えて

2

このフォームはXFAフォームであり、DataDescriptionが欠落していることは残念ですが、異常ではありません。データの記述はオプションであり、必須ではありません。

フォームをiTextで埋めたい場合は、JavaScriptを忘れて行を追加する必要があります。ユーザーがデータ行を行単位で入力し、手動で行を追加して自動データ入力を行い、XMLファイルの形式でデータを入力する手動データ入力を混乱させるべきではありません。行を含む表がある場合、それらの行には、ソースXMLのデータ行と同じ数の行が移入されます。

本当の質問は次のとおりです。データ記述がない場合、どのようにXMLを構成しますか?

  • 理想的な方法があります:あなたは、データのスキーマのためのフォームを作成した担当者に確認してください。彼または彼女はフォームを作成するときにデータソースを提供したので、XMLでデータをどのように整理するかを知っていました。残念ながら、フォームを作成したユーザーには常にアクセスできるとは限りません。
  • 難しい方法があります: XFA XMLを調べて、テンプレート内のデータバインディングを調べます。私はその仕事を与えられていればXFA仕様が必要です。私は誰かが私に袖口から私に尋ねた場合、どこから始めるべきかわかりません。
  • 実用的な方法があります:これは私が常に使用する回避策です。私はAdobe Acrobatで手動でフォームに記入します。私はすべての可能なフィールドを記入し、記入したフォームを保存します。次に、データXMLを抽出します。私はそのデータXMLを使ってXSDを作成しています(そのためのツールがあります)。これにより、XFAフォームで予期されるデータ記述の近似が得られます。明らかに、このXSDはフォームに追加されたすべてのルールと制限を守らない可能性があるため完全ではありませんが、遭遇したほとんどのケースではこれで十分でした(十分でない場合は、 XSDにはそのトリックがあった)。

XMLの予想される構造がわかったら、JavaScriptを心配する必要はありません。ユーザーの操作を処理するJavaScriptは、自動フォームの入力のコンテキストでは無関係です。 XFAフォームにiTextを入力するコンテキストで重要な唯一のJavaScriptは、データの自動書式設定(例:日付、通貨など)を行うJavaScriptです。

+0

はい、私は間違いなくjavascriptの付加ルートを降りる必要はありませんでしたが、オプションがデータの記述の欠如を与えられたかどうかは不明でした。理想的な方法は私のために可能かもしれない、私はいくつかのレバーでかなり固く押す必要があります。しかし、XMLデータソースを指定せず、単にフォームフィールドをフィールド単位で作成することは可能でしょうか?私はこれを尋ねます。なぜなら、TemplateSomとjavasriptは、最初に慎重にxmlスキーマやソースドキュメントを作成することで奇妙なフィールド階層を示しているからです。 – Erikest

+0

実用的な方法、私は前に使用して、DataDescriptions要素が可能であったことに気付かず、単純なフォームの場合は小さな数字でうまくいきます。この場合、私は100年ほどの複雑さを持ち始めており、2年ごとの変更に伴っていつでも積み重ねることができるので、多くの手作業によるフォームの充填を必要としないソリューションを望んでいました。それに関連して、フォームデザイナーがLiveCycle DesignerにDataDescription要素を含め、現在の状態のフォームから推論させる方法がありますか? – Erikest

+0

XFAフォームはフィールド*で記入されている可能性がありますが、フォームを作成するのは非常に面倒な方法のような感じです(おそらくあなたも)。 LiveCycle DesignerにDataDescriptionを含める(または後に作成する)ように強制するには、LiveCycle Designerがその質問に十分に答えることができません。たぶん@rhensは知っている? –

関連する問題