5

私のチームには、Adobe LiveCycle デザイナーで作成したテンプレート (XDP) があります。

状況:

  • 大規模なアップグレードの一環として、古い Acrobat フォーム(XFDF 形式)をこの LiveCycle フォームに置き換えます。

  • 現在の Acrobat フォームには基本データが動的に取り込まれ、PDF としてユーザーに配信されます (ユーザーがリンクをクリックすると、基本的な人口統計の詳細が事前に入力された PDF が自分のマシンで開きます)。

  • 現在のプロセスは次のようになります。ユーザーがクリックすると、.NET アプリがデータを取得し、.NET アプリがファイル システムから PDF を取得し、.NET アプリがデータを XFDF 形式のテンプレートにシリアル化し、ASP.NET アプリが HTTP 応答を XFDF でユーザーに送信します。形式の場合、ユーザーは Adob​​e Reader で PDF を表示します

私たちは、新しい XDP フォーマットとほぼ同様のプロセスを維持したいと考えています。

記録として、この種の作業を行う LiveCycle サービス (Render サービスなど) にアクセスできますとはいえ、いくつかの理由から、このタイプのシリアライゼーションを .NET で作成したいと考えています。LiveCycle ライセンスが制限されており、LiveCycle サービスが企業内にあるため、LiveCycle サービスにアクセスするのに苦労します。

どんな考えでも(「それをやめなさい、あなたは気が狂っている」でも)大歓迎です。

4

2 に答える 2

3

こんにちは、返信が遅くなってすみません、これは見ていませんでした。

PDF を作成します。base64 としてエンコードします。

テキスト ファイル foo.xdp を作成します。

<?xml version='1.0' encoding='UTF-8'?>
<?xfa generator='AdobeDesigner_V7.0' APIVersion='2.2.4333.0'?>
<xdp:xdp xmlns:xdp='http://ns.adobe.com/xdp/'>
    <xfa:datasets xmlns:xfa='http://www.xfa.org/schema/xfa-data/1.0/'>
        <xfa:data>

PDF の動的フィールドと一致する動的データである XML をここに挿入します。

        </xfa:data>
    </xfa:datasets>
    <pdf xmlns=\"http://ns.adobe.com/xdp/pdf/\"><document>
       <chunk>

タグの後に文字を入れずに、base64 でエンコードされた PDF を挿入します。

        </chunk>
    </document></pdf>
</xdp:xdp>

そして、見よ、あなたは有効な XDP を持っています。Adobe Reader はこれを受け入れ、値を含む PDF を表示します。

Java では、接続の詳細を含むプロパティがある場合、次のコードは Livecycle を使用して XDP を PDF に変換できますが、C# ではマイレージが異なる場合があります。

        // Create a ServiceClientFactory object
        ServiceClientFactory myFactory = ServiceClientFactory
                .createInstance(connectionProperties);

        // Create a PDF Utility client
        PDFUtilityServiceClient pdfClient = new PDFUtilityServiceClient(myFactory);

        // Specify an XDP file to convert to a PDF document
        ByteArrayInputStream bais = new ByteArrayInputStream(xdp.getBytes("ASCII"));
        Document inDoc = new Document(bais);

        // Convert the XDP file to a PDF document
        Document pdf = pdfClient.convertXDPtoPDF(inDoc);

        // Return the PDF as an InputStream.
        return pdf.getInputStream();
于 2010-01-22T21:56:47.617 に答える
0

あなたがクライアントサイドレンダリングを探しているように聞こえます-私が実際に実行可能な方法で使用することができなかったものです。そして、あなたが.Netで作業していることを考えると、それはおそらく物事を不可能にするでしょう。

私の意見では、あなたの最善の策は間違いなく、FormsESに付属しているレンダリングサービスを使用することです。おそらくあまり役​​に立たないでしょうが、ちょっと:)

于 2010-01-05T10:18:57.233 に答える