問題タブ [cfdocument]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
688 参照

pdf - ColdFusion PDF ドキュメントの最後のページにのみページ マージンを適用する

私は ColdFusion で生成された PDF を使用して<cfdocument>おり、最後のページにのみフッターを表示したいと考えていました。ここで、うまく機能し、最後のページにのみフッターを表示するソリューションを見つけました。

フッターが長い場合は<cfdocument>、スペースを定義するためにタグに marginbottom を追加する必要があります。例:

つまり、すべてのページの下部に 1.5 インチの空白スペースがあることを意味します。そのスペースを最後のページだけに適用する方法はありますか?

0 投票する
2 に答える
814 参照

coldfusion - cfdocument のパフォーマンスの問題

を使用してpdfを生成してcfdocumentいますが、このコードで完全に機能しています:

その中に変数を含めると#session.footer#、PDF の生成に時間がかかります。

フッター変数には、ドキュメントの最後に追加したい完全なフッター セクションが含まれています。なぜこんなに時間がかかるのか理解できません。ColdFusion 10 を使用しています。

0 投票する
2 に答える
614 参照

coldfusion - html を画像に変換し、coldfusion を使用して pdf に追加する

と を使用cfpdfcfdocumentてサムネイルを作成し、それらを pdf に保存しています。すべて正常に動作しますが、解像度が気に入りません。HTMLから画像を生成し、それらの画像でpdfを作成するために使用できる他のアプローチは何ですか。

0 投票する
1 に答える
131 参照

pdf - ColdFusion/CFWheels は、異なるコントローラーで複数の PDF をマージします

サイトに Coldfusion 10 と CFWheels を使用しています。基本的に、私のサイトには、独自のコントローラーとビューを備えたさまざまな種類のフォームがたくさんあります。フォームごとに、ユーザーはフォームの PDF を動的に生成してダウンロードするオプションがあります。基本的にコントローラーのデータをロードしますが、「pdf」のパラメーターでビューにヒットすると、次の処理が行われ、PDF が生成され、ブラウザーでドキュメントが開きます。

これらの各 PDF は、追加される項目の数に応じて、複数のページを持つことができます。最初に述べたように、フォームには複数の種類があるため、独自のコントローラーとビュー、および印刷ビューを使用した PDF 生成があります。これらのフォームはすべてカスタマイズされ、shippingID などの ID と関連付けられています。したがって、タイプ A の 2 つのフォームとタイプ B の 1 つのフォームとタイプ C の 3 つのフォームを含む 1 つの出荷を行うことができます。私がする必要があるのは、出荷に基づいてすべてのフォームをマージして 1 つの PDF を生成することです。したがって、私の例では、貨物のマージされた PDF には、タイプ A の 2 つのフォーム、タイプ B の 1 つのフォーム、およびタイプ C の 3 つのフォームがすべてマージされて含まれます。

現在私がやっていることは、動的に生成された PDF ページのそれぞれに対して http "GET" 呼び出しを行い、それを一時ディレクトリに保存して、最後にそれらをマージすることです。

出荷をロードし、異なるタイプのフォームごとに次のことを行います。ここで、urlPath は動的 PDF を生成するビューへのパスです。

PDF を取得してファイルに書き込んだ後、参照用にパスを配列に保存して、配列内のすべての参照ファイルをループしてマージし、ファイルが保存された一時ディレクトリを削除します。

このようにする理由は、コントローラーとビューが既に設定されており、個々の PDF をオンザフライでそのまま生成するためです。(関連付けられているすべてのフォーム) を読み込んですべてを 1 つのファイルに入れようとすると、同じコントローラー ロジックをすべて追加して、各フォーム固有のものと関連付けられたビューを読み込む必要がありますが、これらは個々のページ ビューに対して既に存在します。

これを行うより良い方法はありますか?PDF が数枚しかない場合は問題なく動作しますが、20 のように多数の異なるフォームが出荷されている場合は非常に遅くなります。CF Enterprise がないため、cfdocument はシングル スレッドであると思います。最新のデータが含まれるように、フォームを動的に生成する必要があります。

クリスの更新

さまざまなフォームがどのように見えるかを示すコードをいくつか追加しました。私は他の多くのものを検証してロードしますが、一般的なアイデアを得るためにそれを取り除きました:

controllers/Invoices.cfc

パスは次のようになります: /shipments/[shipmentkey]/invoices/[key]

コントローラー/Permits.cfc

パスは次のようになります: /shipments/[shipmentkey]/permits/[key]

コントローラ/Nafta.cfc

パスは次のようになります: /shipments/[shipmentkey]/naftas/[key]

現在、私のビューは、値が「print」または「pdf」のいずれかである「view」という URL パラメーターに基づいています。

print - Web ページのヘッダー/フッターなどを除いた、フォームのほとんどを取り除いたバージョンの印刷ビューを表示します。

pdf - printView を使用して PDF を生成する質問の上部に貼り付けた cfdocument コードを呼び出します。

「show.cfm」コードを投稿する必要はないと思います。これは、問題の特定のフォームごとに特定の情報を表示する一連の div とテーブルにすぎないためです。

これらは 3 つのフォーム タイプの例にすぎず、1 つの出荷に関連付けられる可能性のあるフォーム タイプが 10 以上あり、PDF をマージする必要があることに注意してください。各タイプは、出荷内で数回繰り返される場合もあります。たとえば、出荷には、5 つの許可と 3 つの NAFTA を持つ 10 の異なる請求書が含まれる場合があります。

やや複雑なことに、貨物には米国向けまたはカナダ向けの 2 つのタイプがあり、この異なるフォーム タイプに基づいて貨物に関連付けることができます。そのため、カナダの請求書には米国の請求書とはまったく異なるフィールドがあり、モデル/テーブルが異なります。

現在、マージを行うために、次のようなことを行うコントローラーがあります(単純化するために、多くの検証、他のオブジェクトのロードを取り除いたことに注意してください)

0 投票する
1 に答える
291 参照

coldfusion - CFDocument エラー: ドキュメントの処理中に例外が発生しました

このエラーの原因は何ですか?

「文書処理中に例外が発生しました」

0 投票する
1 に答える
146 参照

coldfusion - Coldfusion cfdocument 改ページの問題

レコード数が指定数(numbersDown)に達したら改ページする予定です。ただし、上記のコードはいくつかのページを印刷してから、最後のページにレコードを印刷します。この問題を解決する方法や改ページを強制する別の方法はありますか?

注: 上記のコードはテーブル内にあります。

0 投票する
0 に答える
129 参照

pdf - CFドキュメントの印刷設​​定

用紙と余白のサイズを含むカスタム サイズを cf ドキュメントに渡します。特大ページを縮小するのではなく、デフォルトの印刷設​​定サイズオプションをデフォルトで実際のサイズに変更する方法があります。

0 投票する
2 に答える
1537 参照

pdf-generation - cfdocument にページ番号を動的に表示する

問題なく PDF を作成できますが、PDF のページ番号を特定のページ (1 ではなく) で開始する必要があります。通常、cfdocument スコープを使用してページ番号を表示しますが、ページが必要ないためです。 1 から始まる番号 コードが機能しません。各ページをインクリメントしながらこれを行う最善の方法がわかりません。正常に動作するコードは次のとおりです。

しかし、改ページを導入すると、番号付けは各ページをインクリメントしません。各ページ番号をインクリメントしないコードを次に示します。

機能しないコードを使用すると、ページ番号は 2 ページの間「10」のままになり、その後「11」に増加します。

どんな助けでも大歓迎です!