問題タブ [apache-fop]
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 - Apache FOP: ローカルの docbook インストールに解決する
ローカルの docbook dtd ファイルなどを使用するように Apache FOP を構成する必要があります。カタログ ファイルの作成から Apache xml リゾルバーのインストールなど、ほぼすべてを試しました。
ここに私が書いたカタログファイルがあります。また、xml.catalog.files プロパティをこのファイルに設定し、FopFactory が URIResolver として使用する Apache カタログ リゾルバーをインスタンス化しました。しかし、fop は依然としてネットからすべてをフェッチします。
何がうまくいかないのですか?
よろしく、らいちょう
xml - XSL テーブルの行を別々のページ シーケンスに分けることは可能ですか?
私はxslが初めてなので、これは明らかな答えかもしれません。
FOPを使用してJavaでxmlとxslスタイルシートからテーブルを作成しています。テーブルには数千行 (>50,000) が含まれる可能性があるため、FOP のメモリ フットプリントを削減して、Java ヒープ スペースの使用を回避したいと考えています。
現在、私の xsl は<fo:table-body
> 要素全体を単一のページ シーケンスにグループ化しているため、テーブルの行が生成されている間にメモリがリサイクルされることはありません。個々の行またはグループの行を別々のページシーケンスに分割することは可能ですか?
インデックスで要素を反復処理できることはわかっていますが (このスタックオーバーフローの回答: Xslt - iterate nodes in chunks<fo:page-sequence
を参照)、 > 要素が > 要素内で有効であるとは思いません<fo:table
。
テーブル内の行を分割できない場合、行を別々のテーブルに分割する方法はありますか?
編集:提案からこれを思いついた
入力 XML:
入力 xsl:
これで master-reference の > タグにエラーが出るのですが、<page-sequence
master-reference="simpleA4" にしてみましたがだめでした。何を与える?
その構文エラー以外に、これで何が間違っているように見えますか?
width - XSL-FO は、Apache FOP および XMLSpy で、広い領域本体を持つページマスターから狭い領域 (列幅の変更を含む) にフローすると、幅がオーバーフローします
XMLSpy で Apache FOP を使用して XSL-FO (Formatting Objects) を使用しています。
幅の広いリージョン ボディを持つシンプル ページ マスターを持つ最初のページから、狭いリージョン ボディを持つ 2 番目の (残りの) ページにコンテンツを流し込むと、2 ページ目のコンテンツの幅が上のコンテンツの幅と同じになります。本文からはみ出す1ページ目。これは、2 ページ目の列数を最初のページの列数より大きく設定した場合にも発生します。
使用可能な水平スペースが減少したことをエンジンに認識させ、それに応じて本文 (または列) の幅を調整するにはどうすればよいですか?
問題の例を次に示します (ページ 1 からページ 2 に流れるのに十分なテキスト コンテンツを含む XML ドキュメントで使用します)。
image - IKVM を使用した FOP: 画像なし
.NET で IKVM 0.44.5 を使用して FOP 1.0 を正常にコンパイルして使用しましたが、結果の PDF に画像を表示できません。
コマンドラインで ikvm を介して FOP を実行すると、java.io.EOFException が発生します。Javaを使用して同じファイルを変換すると、画像が完全に表示されます。
FOP+IKVM を使用して画像を動作させた人はいますか? 解決策への助けや指針をいただければ幸いです。
java - FOPFactoryと同じFOPドライバー構成
私は現在、次のようにドライバーを使用して埋め込まれたFOPを使用しています
しかし、複数の解像度のファイルを作成する必要があるため、プログラムで特に出力解像度にアクセスしたいと思います。72dpi150dpi 300dpiそれを行う唯一の方法は、次のようにFOPFactoryに変更することです。
Driverを使用してFOPエンジンを制御する方法はありますか、それともFOPFactoryに切り替える必要がありますか?そうすることの利点/問題は何ですか?
android - Android用のFOP?
最近、XMLをPDFファイルに変換したいので、FOPを使用してAndroidアプリをコンパイルしました。ただし、FOPJARファイルがAndroidで機能しないという意味ではないと思います。Androidで利用できるFOPのバージョンはありますか?または、インターネット上のFOP対応サーバーに接続する代わりに、アプリ内で使用できる他のXMLからPDFへのコンバーターはありますか?
fop.jarとxmlgraphics.jarを含めてみましたが、プロジェクトに追加しても、への呼び出しはFopFactory.newInstance()
失敗します。
FOPを呼び出すボタンクリックのコードスニペットは次のとおりです。
コンパイラはまた私にたくさんのDxwarning: Ignoring InnerClasses attribute...
エラーを与えています。ボタンをクリックしてPDFを作成すると、次のエラーが発生します。
java - JavaによるPDF、barcode4j圧縮
Apache Fop 1.0 を使用して PDF ドキュメントを作成しています。デフォルトでは、FlateFilter を使用してコンテンツを圧縮します。FOP は、隠れて DeflaterOutputStream DEFAULT_COMPRESSION を使用します。BEST_COMPRESSION に設定する可能性はありません。
PDFには、Barcode4j 2.1によって生成されたバーコードも含まれています。生成された画像は非常に大きく、圧縮方法に関する情報は見つかりませんでした。
PDF を生成すると (fop で flate を使用し、上記のバーコード インジェクションを使用して)、シンプルな winzip で pdf サイズを 30% 減らすことができます。
私のプロセスでより良い圧縮アルゴリズムを使用する方法はありますか? PDF は Acrobat Reader で開くことができる必要があるため、サーバー側で圧縮してクライアント側で解凍することはできません。
barcode4j で生成された画像は圧縮できると思いますが、その方法がわかりません。
Update1: 生成されたバーコードが大きすぎるようです。PDF には 3 ページと 3 つのバーコードが含まれています。3 つのバーコードは、pdf サイズ全体の約 50% です。
ありがとう
ゾルタン
xml - FOP 変換の前に XML を検証する
FOP 変換を実行する前に、XML スキーマに対して XMLReader からの XML 出力を検証したいと考えています。
2 つのステップを個別に実行できますが、これは XMLReader が 2 回処理されることを意味します。Validator からの出力を使用して変換にフィードバックする方法がわかりません。
私が実行しているコードは以下のとおりです。
助けてくれてありがとう
起源:
検証:
変換:
xsl-fo - XSL-FO 静止画像はドキュメントの左下、動的テキストは 2 列のレイアウトの周りを流れていますか?
外部ソースから動的 XML/XSL-FO を使用して PDF を作成しています。ページの左下に画像が必要ですが、機能せず、画像の周りにテキストが流れています。
使用される xsl は次のとおりです。 flower は、SVG としての fo:instream-foreign-object のスニペットへの呼び出しです。
画像は一番下に表示されますが、テキストはページの一番下まで右に押し出されます (61mm の場合 - width="1mm" にすると機能しますが、テキストが画像からはみ出します)。
画像を正しい場所に配置してテキストを折り返すにはどうすればよいですか。また、テキストは可変であり、変更される可能性があるため、テキストのインラインの画像の位置を計算することはできません。
apache-fop - Apache FOP: 相対パスを使用して外部リソースにアクセスするためのベース URL を設定する方法
私の .xsl ファイルでは、このような外部グラフィックを使用しています
<fo:external-graphic width="90pt" height="29pt" src="url(xsl/logo.jpg)"/>
しかし、生成された PDF に画像が読み込まれず、コンソールにこのエラーが表示されます。
[ERROR] Error while creating area : Error with image URL: xsl\logo.jpg (The system cannotfind the path specified) and no base URL is specified
この問題を解決するにはどうすればよいですか? ベースURLを設定すればいいと思います。しかし、ベース URL を設定するにはどうすればよいでしょうか。助けてください。