評価版の Aspose.CAD for Java 25.9 を使用して、DWG から SVG への変換テストを行っています。
使用用途としては、DWG ファイルを SVG ファイルに変換し、その際に DWG 側で設定されている線やレイヤーの色情報を SVG に反映させたいと考えています。
しかし、現在の実装では、DWG ファイルが持っている色情報が SVG 出力に反映されず、モノクロのような状態になってしまっています。
そこで質問なのですが:
- これは評価版(無償版)を利用していることによる制限の可能性はありますか?
- 製品版では、DWG の色情報を保持したまま SVG へ変換することは可能でしょうか?
- 評価版/製品版にかかわらず、DWG の色情報を SVG に反映させるために推奨される CadRasterizationOptions / SvgOptions の設定があれば教えてください。
よろしくお願いいたします。
@so_miyagi
要約
DWG から SVG への変換で色が失われるのは、評価版・製品版いずれも機能制限が原因ではなく、変換時の設定がデフォルトでモノクロになる可能性があるためです。CadRasterizationOptions でカラー出力を明示的に指定すれば、DWG のレイヤーや線の色情報を SVG に反映させることができます。
なぜ起きるのか
- 評価版の制限ではない – 無償評価版でもフル機能が提供されており、色情報が失われるのは設定に起因します。
- デフォルト設定がモノクロになることがある –
CadRasterizationOptions のデフォルトのカラーモードがモノクロ(白黒)になっている場合、変換結果もモノクロになります。
- ライセンスの有無は色に影響しない – 有料版でも同じ API が使用され、同様の設定でカラー出力が可能です。
次にすべきこと(手順)
- ライセンスを設定(評価版・製品版共通)
com.aspose.cad.License license = new com.aspose.cad.License();
license.setLicense("Aspose.CAD.Java.lic"); // ライセンスファイルのパス
- CadRasterizationOptions でカラー出力を指示(公式ドキュメントで
RenderColorMode の設定方法を確認してください)
// DWG の読み込み
com.aspose.cad.Image image = com.aspose.cad.Image.load("input.dwg");
// ラスタライズ設定
com.aspose.cad.imageoptions.CadRasterizationOptions cadOptions =
new com.aspose.cad.imageoptions.CadRasterizationOptions();
cadOptions.setPageWidth(1600); // 必要に応じてサイズ調整
cadOptions.setPageHeight(1200);
// カラー出力を有効にする(例: RenderColorMode を Color に設定)
// 詳細は Aspose.CAD の API リファレンスをご参照ください
- SvgOptions に上記オプションを紐付けて保存
com.aspose.cad.imageoptions.SvgOptions svgOptions = new com.aspose.cad.imageoptions.SvgOptions();
svgOptions.setVectorRasterizationOptions(cadOptions);
// SVG へ保存
image.save("output.svg", svgOptions);
- 出力結果を確認
- 生成された
output.svg をブラウザや SVG エディタで開き、元の DWG と同じ色が表現されているか確認します。
- まだモノクロになる場合は、レイヤーの可視性や他のラスタライズオプション(例:
LayoutOptions)を見直してください。
まとめ
- 色が失われるのは評価版の制限ではなく、変換設定がモノクロになっているためです。
CadRasterizationOptions でカラー出力を明示的に指定すれば、DWG の色情報を SVG に保持できます。
- 詳細なオプションや最新の API 仕様は、Aspose.CAD for Java の公式ドキュメントをご確認ください。
RenderColorModeは 25.9 のライブラリには存在するのでしょうか?
現在コンパイルエラーが発生していて、対応するAPIがないのではないかと考えております。
ご回答よろしくお願いいたします。
@so_miyagi,
こんにちは。
このオプションを試してみて、何か違いがあるかどうか確認していただけますか?
cadRasterizationOptions.setDrawType(CadDrawTypeMode.UseObject Color);