問題タブ [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.
java - iTextRenderer 変換で表示する以下を取得する方法
知っていることはすべて試しましたが、Flying Saucer の iTextRenderer によって xHTML から生成された PDF に ≥ および ≤ 文字を表示することはできません。もちろん、私のブラウザでは HTML として問題なく表示されます。さまざまな xml エンコーディング タイプ、doctypes を試し、ショートカット名の代わりに 10 進数と 16 進数の値を使用してみました。それでもエラーは表示されませんが、文字があるはずの場所に空白ができます。
≤ および ≥ 特殊記号を使用して iTextRenderer を使用して xhtml を pdf に正常に変換した人はいますか?
解決策: わかりました、これで解決しました。次の Java コード行を使用して、Verdana フォントを PDF に埋め込む必要があったことがわかりました。
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つの異なるタイプのエラーに遭遇しています:
状態の保存/復元演算子の不均衡による実行時例外。次のようにスタックトレースをサンプリングします。
/li>生成されたPDFには、欠落/変形したセクション、または最悪の場合、空白のページがあります。
問題2については、finishPDF()を2回呼び出したことが原因であると確信しています。ただし、Issue 1の場合、 finishPDF()の呼び出しが実行される前に発生するため、それが問題の原因であるかどうかは実際にはわかりません。
Flying SaucerをiTextと一緒に使用しているときに、これら2つの問題に対処した経験のある人はいますか?
java - HTTP 要求で作成された PDF が Internet Explorer で開かない
リクエストのいくつかのパラメーターに基づいて、応答に対してオンザフライで PDF を作成するサーブレットがあります。このファイルを IE で開いたりダウンロードしようとすると、次のメッセージが表示されます。
「[サイト] から [ファイル名] をダウンロードできません。このインターネット サイトを開くことができません。要求されたサイトは利用できないか、見つかりません。後でもう一度試してください。」
これは私が応答に設定したものです:
他のブラウザではすべて正常に動作しています。
アップデート:
添付ファイルの代わりにインラインで試しました。これにより、開く/保存ダイアログの代わりに新しいウィンドウが開きます (ダイアログが必要です)。エラー メッセージは表示されなくなりますが、新しいウィンドウは IE では空です。まだ他のブラウザで動作しています。
エスケープされていない文字を含まない、ファイル名の周りに単純な二重引用符なしを試しました。二重引用符と引用符なしでは違いはありませんが、ファイル名に単一引用符が追加されます。もちろん、これは望ましくありません。
ファイル名にエスケープされていない文字が含まれていません。
このページのテストを確認しました。ファイル名付きの引用符なしの添付ファイルがすべてのブラウザーに渡されることが示されています。これは最初から使われていたものです。
Content-Length ヘッダーを追加しても違いはありません。
ちなみに、フライングソーサーはPDFの作成に使用されています。
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中にエンコードすることを検討する必要がありますか????
jsf-2 - Javaでitext+フライングソーサーを使用してxhtmlページから動的にpdfを生成する方法
私は初めてiText+フライングソーサーを使用し、JSF 2.0を使用したxhtmlページで、firstName、lastName、phone numberなどの通常の入力フィールドを使用した簡単な登録フォームを使用しています。ユーザーがすべてのデータを入力し、[次へ]ボタンをクリックすると、ユーザーデータを含むこのXHTMLページをpdfに変換します。ページに含まれるすべてのスタイルを含むこのページのソースHTMLを正確に取得し、pdfに変換するにはどうすればよいですか。現在、このように結び付けています。
しかし、それは私にこの例外を投げかけています。
これは、上記のURLを使用してページを取得する正しい方法ですか。そのURLは、[次へ]ボタンをクリックしてユーザーデータを含むページを取得してPDFに変換しますか、それとも間違ったコードを試していますか。助けてください。例をいただければ幸いです。
java - itext+空飛ぶ円盤を使用してフォーム フィールドをレンダリングできない
iText と空飛ぶ円盤を使用して XHTML から PDF を作成しています。出力 PDF を見ると、XHTML ページにある入力テキスト ボックス、チェック ボックス、ラジオ ボタン、ドロップ ダウン ボックス、ボタンが表示されません。出力 PDF に段落以外の HTML が表示されません。この問題を克服する方法はありますか。
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 をテスト環境として使用しています。これは、ここの人々が問題に直面しているのと同じ環境です。
ありがとう。
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 がありますか? どんな助けでも大歓迎です。
java - Java を使用して特殊文字を含む HTML を PDF に変換する
変換にiText 2.1.7で空飛ぶ円盤を使用しています。問題なく動作しますが、html に中国語、韓国語などの文字が含まれていると問題が発生します。html to pdf
PDF に通常の漢字ではなく、予期しない文字が表示されます
この問題が未解決であることがわかったので、空飛ぶ円盤で PDF を正しくレンダリングする方法は現在ないと思いますか?
PS: 私もこの問題を見つけましたが、提供された解決策を理解できません。
これは私が使用しているコードです
fileは、変換しようとしている html です。
同じことを行う他の方法やライブラリはありますか?
これは私が使用しているcssです
変換する必要があるHTMLファイル
これらは、itext 2.1..x と互換性のある、再コンパイルされた空飛ぶ円盤の jar ファイルです。