問題タブ [batik]
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.
svg - JavaFX 2.2 の SVG イメージ
私はJavaFX 2.2が初めてで、今のところJavaFX 2.2アプリケーションでSVG画像を表示する方法が見つかりませんでした。Batik を見てみましたが、 に変換され、 に変換されBufferedImages
ないため、うまくいきませんでしたjavafx.ImageView
。
JavaFXアプリケーションでSVG画像を表示する方法はありますか? または、少なくとも JavaFX から SVG イメージをエクスポートできますか? 関数Node.snapshot()
は何らかの形で役立ちますか?
java - ユーザーがエクスポートできるようにdojox.charting.ChartをPNG画像に変換するにはどうすればよいですか?
DOJOによって開発されている私のプロジェクトには、ユーザーがチャートをPNG画像としてエクスポートできるという新しい要件があります。私は調査を行い、2つのアイデアを見つけました:
1、DOJO APIでPNG画像に直接エクスポートする適切な方法を見つけてみてください(画像にエクスポートするためのAPIメソッドを提供するExt JSと似ているため)が、DOJOチャートにはそれを行う方法がありません。
dojox.fxやdojox.gfxなどのDOJOAPIを使用して画像を描画しますが、これらは画像を生成できません。だから私はこの方法をあきらめます。
2、サードパーティのプラグインを使用してそれを行います。まず、メソッド'dojox.gfx.utils.toSvg(chart.surface).then'でグラフの表面コンテンツを取得し、次にApacheのプラグインBatikを使用してSVGコンテンツをPNG画像に変換します。以下は私の試したコードです:
そして、メソッドdoExportChartは次のようなことをします。
以下のSVGsample.svgのコンテンツ:
そして、上記のコードを実行すると、エラーが発生します。
2番目の解決策は、http: //xmlgraphics.apache.org/batik/using/transcoder.htmlの公式例に従います。私にはわからないので、私に指導をしてくれる人がいることを願っています。どうもありがとう。
java - Batik を介して更新された画像をトランスコードする際の問題
私は、1 つのファイル名で SVG 画像を生成するコマンド ライン プログラム用の GUI ラッパー (Java で) を作成しています。
残念ながら、基になるプログラムは新しい画像を生成するときに svg タグを閉じることができないため、次のように FileWriter を使用してファイルを変更しています。
Batik は最初の画像を完全にトランスコードしますが、2 番目の画像は svg タグがないために失敗します。
FileWriter がファイルを両方とも更新していることを手動で確認しました。
以下は私のトランスコーダーコードです(入力ファイルとnewFileNameを使用):
更新された SVG イメージが生成されるたびに、新しいトランスコーダ オブジェクトがインスタンス化され、上記のメソッドが実行されます。
画像は常に生成され、トランスコーダーが実行される前に終了タグが追加されるため、トランスコーダーが更新されたファイルを読み取らないように見える理由がわかりません。また、スレッドを数秒間中断しようとしましたが、改善はありませんでした。
任意の提案をいただければ幸いです。
java - JavaでスケーリングするときにSVGファイルのピクセルを見る
Batik ライブラリを使用して Java で SVG ファイルを処理しています。スケーリングすると問題が発生します。線のピクセルが見えます。もちろん、これは起こらないはずです。少なくとも約 4000% ズームして滑らかさを維持できるはずです。
SVG ファイルは拡張クラスから読み込まれ、オーバーライド ペイント メソッドからペイントされます。まず、新しいスケールを AffineTransform 変数に設定し、これをメソッドのグラフィックスに適用し、super.paint() を使用してペイントします。
私は本当に立ち往生していて、問題を理解できません。私が使用している SVG ファイルは問題ありません。Inkscape で開いたところ、ピクセルが表示されずにズームできました。助けてください。
コード:
java - javaでsvgをpdfに変換する際のフォントを変更する
私はsvgをpdfに変換するためのJavaプログラムを持っています。その svg ファイルでは、スタイルとして Myriad Pro Light を指定しました。pdf に変換した後、フォントは別のものになります。プログラムでフォントスタイルを設定する方法を誰かに提案してもらえますか?
java - Java で例外のソースが見つからない
基本的に例外がスローされており、理由がわかりません。コンソールに表示されるのは次のとおりです。
SVG ファイルの描画に使用するのは明らかにバティック ライブラリからのものですが、ドキュメントが読み込まれ、準備が整い、画面に表示されるまで、何も描画されないようにしました。投げると何も描かれません。
もう一つ興味深いのは、投げるタイミングです。クラスを開始するとすぐにスローされることもあれば、5分以上かかることもあるため、論理パターンを見つけることができません。これに加えて、私がテストした限り、それをトリガーする repaint() を呼び出す単一のアクションはありません。
私はJavaが初めてで、他のすべての例外には、スローされた場所のクラスと行番号があったため、ここで何をすべきかわかりません。
どんな提案でも大歓迎です。
コードが膨大なので、paint メソッドだけ載せます。何か追加が必要な場合は、そう言ってください。
編集:私のクラスには配列がないため、インデックスを確認できません。この例外は私が使用しているライブラリからスローされたと思いますが、それは .jar ファイルであり、開く方法がわかりません。
java - batik-rasterizer.jarを呼び出す方法
batikのバージョン1.7から使用batik-rasterizer.jar
して、jarを正しく呼び出す方法を考えていました。
それは私に与えました:
MainClass
したがって、私は正しいものを探してClassPath
使用しました。答えとして思いついたスクリプトをすぐに投稿します...
coldfusion - Coldfusion を介して Batik トランスコーダに SVG 変数を渡す際の問題
SQLテーブルからSVGコードを取得してからBatikに渡してトランスコードする(PNGを表示する)までの間に、私が理解できないことがあります。
以下の CF コードを実行すると、エラーが発生します: The image cannot be displayed because it contains errors . これは、これが生成する唯一のエラーです。
また、true を返す isXML() を使用してテーブルの値をテストしました。
しかし、もし私が:
- セクション 1 のコメントを解除します。
- CFDUMP によって生成された SVG コードを COPY し、
- その SVG コードをセクション 2 の CFSET に貼り付けます。
- コメント セクション 1 を再度コメント アウトします。
次に、期待どおりに PNG がブラウザに表示されます。CFDUMPでSVGコードを表示し、それをコードに手動で貼り付けて使用するプロセスは、何らかの方法で(不思議なことに)それを変更して機能させます...
ありとあらゆるバリエーションを試しました。CFDUMP で SVG コードを表示するときに、ColdFusion が何かわからないことをしているようです (または、SQL からの何らかの文字セットの問題でしょうか?)。
誰にもこれが何であるか考えがありますか?私は困惑しています。
jquery - データベースから取得した SVG の使用に関する問題 (UTF-8 エラー)
Batik トランスコーディングで SQL テーブルから取得した SVG コードを使用しようとすると、「3 バイト UTF-8 シーケンスのバイト 2 が無効です」というエラーが表示されます。
jQuery によって DOM からプルされた svg 描画は、jQuery Ajax を介して cfc に送信され、SQL テーブルに更新されます。別の別のページで、SVG コードがテーブルからクエリされ、Batik を使用して PNG ファイルにトランスコードしようとします。その時点で、無効な UTF-8 シーケンス エラーが発生します。
データを保存するコード:
SVG コードがテーブルに保存される CFC からのコード:
SVG がテーブルから取得され、PNG へのトランスコードに使用されるコード:
注:代わりに、svg をアクション ページに送信して、テーブルに更新し、すぐにそのテーブルから取得してから、正常に機能するトランスコードを試みました。したがって、ajaxを介して送信するとき、またはテーブルから更新/取得するときに、文字セットに何か問題があるに違いないように思えます。できれば助けてください...
もう少し絞ってきました。テーブルに直接svgを入力すると、3番目のセクションが正常に機能します...したがって、svgがcfcに送信されてテーブルに保存されるajax呼び出しでデータが送信される方法に問題があるに違いありません.
jquery - jQueryajaxはcoldfusionサーバーに送信されるSVGデータを変更するようです
$ .ajax()を使用して文字列をColdFusionサーバーに送信し、そこでテーブルに保存しています。後でクエリを実行してそのデータを使用しようとすると、エラーが発生します。「nullで囲まれた例外:3バイトのUTF-8シーケンスの無効なバイト2」。
まず、DOMからSVGを取得し、アクションページに送信します。ただのひもでしょ?
myAction.cfmページで、データをテーブルに更新します。
SVG2PNG.cfm:svgデータをクエリして使用しようとすると、「3バイトUTF-8シーケンスのバイト2が無効です」というエラーが表示されます。エラーは.transcode行で発生します。
私はjQueryのajaxメソッドを何回か問題なく使用しました。私はここで何か間違ったことをしているのですが、それをうまく処理できないようです...