問題タブ [flying-saucer]

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 に答える
1396 参照

java - iTextRenderer 変換で表示する以下を取得する方法

知っていることはすべて試しましたが、Flying Saucer の iTextRenderer によって xHTML から生成された PDF に ≥ および ≤ 文字を表示することはできません。もちろん、私のブラウザでは HTML として問題なく表示されます。さまざまな xml エンコーディング タイプ、doctypes を試し、ショートカット名の代わりに 10 進数と 16 進数の値を使用してみました。それでもエラーは表示されませんが、文字があるはずの場所に空白ができます。

≤ および ≥ 特殊記号を使用して iTextRenderer を使用して xhtml を pdf に正常に変換した人はいますか?

解決策: わかりました、これで解決しました。次の Java コード行を使用して、Verdana フォントを PDF に埋め込む必要があったことがわかりました。

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

java - FlyingSaucer ITextRenderer終了エラー(不均衡な保存/復元と空白のPDF)

org.xhtmlrenderer.pdf.ITextRenderer特にクラスを利用して、HTMLファイルからPDFを生成するために、ITextでFlyingSaucerを使用しています。私のコードは単純です。生成コードは、次のようなメソッドにカプセル化されます。

編集:

私のジェネレータークラスは、実際にはSpringによってシングルトンオブジェクトとして管理されています。PDF生成タスクのキューとして機能するExecutorServiceを持つマネージャークラスがあります。このマネージャーは、シングルトンジェネレーターを使用してオブジェクトを生成します。したがって、ITextRendererを一度だけインスタンス化して再利用します。ここで、最大2つのスレッドを同時に操作するようにキューを設定しました。2つのスレッドが1つのレンダラーを使用して2つの別々のPDFセットをレンダリングしている状況に遭遇したため、これが原因である可能性があることに気づきました。

今、私は実際にレンダリングごとに2回「終了」と呼んでいることに気づきました。1つはcreatePDF()エラー呼び出し(2番目のパラメーターとしてtrueを渡す)で、もう1つは。への明示的な呼び出しfinishPDF()です。

これはかなり前から実行されており、ほとんどの場合、PDFを正常に生成することができました。私は散発的に2つの異なるタイプのエラーに遭遇しています:

  1. 状態の保存/復元演算子の不均衡による実行時例外。次のようにスタックトレースをサンプリングします。

    /li>
  2. 生成されたPDFには、欠落/変形したセクション、または最悪の場合、空白のページがあります。

問題2については、finishPDF()を2回呼び出したことが原因であると確信しています。ただし、Issue 1の場合、 finishPDF()の呼び出しが実行されるに発生するため、それが問題の原因であるかどうかは実際にはわかりません。

Flying SaucerをiTextと一緒に使用しているときに、これら2つの問題に対処した経験のある人はいますか?

0 投票する
5 に答える
3325 参照

java - HTTP 要求で作成された PDF が Internet Explorer で開かない

リクエストのいくつかのパラメーターに基づいて、応答に対してオンザフライで PDF を作成するサーブレットがあります。このファイルを IE で開いたりダウンロードしようとすると、次のメッセージが表示されます。

「[サイト] から [ファイル名] をダウンロードできません。このインターネット サイトを開くことができません。要求されたサイトは利用できないか、見つかりません。後でもう一度試してください。」

これは私が応答に設定したものです:

他のブラウザではすべて正常に動作しています。

アップデート:

添付ファイルの代わりにインラインで試しました。これにより、開く/保存ダイアログの代わりに新しいウィンドウが開きます (ダイアログが必要です)。エラー メッセージは表示されなくなりますが、新しいウィンドウは IE では空です。まだ他のブラウザで動作しています。

エスケープされていない文字を含まない、ファイル名の周りに単純な二重引用符なしを試しました。二重引用符と引用符なしでは違いはありませんが、ファイル名に単一引用符が追加されます。もちろん、これは望ましくありません。

ファイル名にエスケープされていない文字が含まれていません。

このページのテストを確認しました。ファイル名付きの引用符なしの添付ファイルがすべてのブラウザーに渡されることが示されています。これは最初から使われていたものです。

Content-Length ヘッダーを追加しても違いはありません。

ちなみに、フライングソーサーはPDFの作成に使用されています。

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

css - Unicode文字用のFlyingSaucerフォント

Grailsエクスポートプラグイン(基本的にはFlying Saucer)を使用してPDFを生成しています。私のGSPページはUTF-8ページです(または、少なくともプロパティはそれがUTF-8であることを示しています。また、GSPページの先頭に<?xml version="1.0" encoding="UTF-8"?>ディレクティブがあります)。最初に生成されたPDFには、ウムラウト文字「äöüõ」が適切に含まれていましたが、キリル文字がPDFに含まれていませんでした(まったくレンダリングされていません)。次に、ドキュメントで説明されているように、次を追加してcssファイルを変更しました。

ArialUni.ttfもサーバーにデプロイされます。しかし、今ではウムラウト文字とキリル文字の両方がボックスとしてレンダリングされています。-fs-pdf-encodingプロパティ値をIdentity-Hに変更すると、umlaut文字は正しくレンダリングされますが、キリル文字は疑問符としてレンダリングされます。

umlaut文字とキリル文字の両方を適切にレンダリングするためにどのフォントを使用できるかについてのアイデアはありますか?それとも私のCSSがどういうわけか間違っているのでしょうか?ヒントをいただければ幸いです。

Upd 1:私はcss( http://fontface.codeandmore.com/ によって生成された)も試しました:

http://grails.1312388.n4.nabble.com/PDF-plugin-Having-problems-with-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> で説明したように、-Dfile.encoding=UTF-8を使用してgrailsを実行しようとしていたことも追加しました。 instalation-td2297840.htmlですが、何も役に立ちません。キリル文字はまったく表示されません。問題となる可能性のある他のアイデアはありますか?

*ところで: * PDFをzipとしてパッケージ化し、次のような応答でブラウザに送り返しています。

どういうわけかzip中にエンコードすることを検討する必要がありますか????

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

jsf-2 - Javaでitext+フライングソーサーを使用してxhtmlページから動的にpdfを生成する方法

私は初めてiText+フライングソーサーを使用し、JSF 2.0を使用したxhtmlページで、firstName、lastName、phone numberなどの通常の入力フィールドを使用した簡単な登録フォームを使用しています。ユーザーがすべてのデータを入力し、[へ]ボタンをクリックすると、ユーザーデータを含むこのXHTMLページをpdfに変換します。ページに含まれるすべてのスタイルを含むこのページのソースHTMLを正確に取得し、pdfに変換するにはどうすればよいですか。現在、このように結び付けています。

しかし、それは私にこの例外を投げかけています。

これは、上記のURLを使用してページを取得する正しい方法ですか。そのURLは、[次へ]ボタンをクリックしてユーザーデータを含むページを取得してPDFに変換しますか、それとも間違ったコードを試していますか。助けてください。例をいただければ幸いです。

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

java - itext+空飛ぶ円盤を使用してフォーム フィールドをレンダリングできない

iText と空飛ぶ円盤を使用して XHTML から PDF を作成しています。出力 PDF を見ると、XHTML ページにある入力テキスト ボックス、チェック ボックス、ラジオ ボタン、ドロップ ダウン ボックス、ボタンが表示されません。出力 PDF に段落以外の HTML が表示されません。この問題を克服する方法はありますか。

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

java - PDFをレンダリングしようとしているときに、この「org.xhtmlrenderer.render.BlockBoxをorg.xhtmlrenderer.newtable.TableBoxにキャストできません」を取得する

PDFをレンダリングしようとしているときに、このエラーが発生します。play フレームワークに Nicolas Leroux の PDF モジュールを使用しています。

これはスタックトレース全体です: Pastebin。グーグルは4つの結果しか明らかにしません。彼らは、私が削除した float プロパティと position 属性をすべて削除することを提案しています。jsut を試してみてください。私はまだこの問題に直面しています。誰かが問題を解決できましたか?

編集:これは、pdf をレンダリングする html です:

私は Windows 7 と Tomcat6 をテスト環境として使用しています。これは、ここの人々が問題に直面しているのと同じ環境です。

ありがとう。

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

java - HTTP 応答をブロックせずに Flying Saucer で PDF を作成するには?

JSF ファイルから PDF を作成するために Flying Saucer を使い始めました。ここで問題があります。HTTP 応答をブロックせずに PDF を作成するアプリケーションで使用したいのです。

以下のコードを見てください。

私の理解によると、ITextRenderer は 3 行目 (関数 loadDocument) で JSF 全体をロードします。つまり、ITextRenderer では、JSF 全体がサーバーによって作成される必要があります。

次に、ITextRenderer は 4 行目で PDF レイアウトを作成し、5 行目で outputStream に配置します。

JSF の作成に時間がかかる場合はどうすればよいでしょうか。上記のコードは、サーバーが JSF 全体を作成するまで 3 行目にスタックされます。したがって、1 行目から 6 行目のコードをサーブレットに挿入すると、HTTP 応答がブロックされ、タイムアウトの問題が発生する可能性があります。元の JSF 全体が作成されるまで待たずに、Flying Saucer が出力ストリームの HTTP 応答の作成を開始することを望みます。それを行う最良の方法は何ですか?Flying Saucer にはこれをサポートする API がありますか? どんな助けでも大歓迎です。

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

java - Java を使用して特殊文字を含む HTML を PDF に変換する

変換にiText 2.1.7で空飛ぶ円盤を使用しています。問題なく動作しますが、html に中国語、韓国語などの文字が含まれていると問題が発生します。html to pdf

PDF に通常の漢字ではなく、予期しない文字が表示されます

この問題が未解決であることがわかったので、空飛ぶ円盤で PDF を正しくレンダリングする方法は現在ないと思いますか?

PS: 私もこの問題を見つけましたが、提供された解決策を理解できません。

これは私が使用しているコードです

fileは、変換しようとしている html です

同じことを行う他の方法やライブラリはありますか?

これは私が使用しているcssです

変換する必要があるHTMLファイル

これらは、itext 2.1..x と互換性のある、再コンパイルされた空飛ぶ円盤の jar ファイルです。

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

java - 空飛ぶ円盤を使用して大きな表を PDF に変換するにはどうすればよいですか?

多数の列を含む html があります (このリンクでサンプルを見つけることができます)

空飛ぶ円盤( iText 2.1.X で動作するように再コンパイルされたjar リンク)を使用して PDF に変換しようとすると、生成された PDFの列が切り捨てられます。

空飛ぶ円盤を作成して、テーブルを壊したり、html コンテンツに応じてページの幅を広げたりする方法はありますか?

これは私が使用しているコードです

fileは、変換しようとしている html です