web-dev-qa-db-ja.com

フォントとエフェクトを破壊せずにInkscape SVGからPDFを作成します

いくつかの透明効果と異なるレイヤーを含むInkscape SVGファイルがあり、それらを配布用にPDFファイルにエクスポートします。 [名前を付けて保存...]または[コピーを保存...]を使用してPDF形式を選択すると、すべての効果が文字化けします。

Top: expected output. Bottom: actual output

上:期待される出力。下:実際の出力

私は元の.svgをまだ持っているので、画像を平坦化したり、編集機能やその他のプロセスを失うことを気にしませんが、とにかくオプションを見つけることができません。むしろ、ラスタライズされた形式へのエクスポートは避けたいと思います。大きな用紙に印刷するために使用できるようにしたいからです。

これに対する解決策を探しているとき、とりわけ、私は見つけました このスレッド、元は2006年 、ここで最新の答えは2012年であり、

6年後..同じ問題。 InkscapeはPDFレベルの不透明度にエクスポートできません。とても悲しい。

これを行う方法は本当にありませんか?

8
Tomas Aschan

InkscapeをPPAバージョン0.49にアップグレードする必要があります。私のテストでは、マスキング、クリッピング、参照パスの違いを使用して結果を生成しました。

example image showing clip mask and difference in inkscape as a pdf

Inkscapeをアップグレードするには、ターミナルを開き、次のコマンドを発行します。

Sudo add-apt-repository ppa:inkscape.dev/trunk
Sudo apt-get update
Sudo apt-get install inkscape-trunk

これにより、0.48バージョンのinkscapeが削除され、PDFファイルに必要な0.49以前のバージョンに置き換えられます。

さて、これの回避策についての私の2セントです。

rsvg-convertを使用して以前の回答を試しましたが、これは透明なアイテムでうまく機能しました。問題は、SVGに非常に低い解像度で実際にラスタライズされた埋め込み画像があることです。 rsvg-convertにより高いX/Y dpiを指定しても変更されませんでした。

そこで、次のことを行い、問題を解決しました。

  1. 画像をPDFに「ラスタライズ」する:rsvg-convert -f pdf -o rasterized.pdf orig.svg
  2. Inkscapeで元の画像を開きます:inkscape orig.svg
  3. Inkscapeで、ラスタライズされた画像(現在は透明な形状だけでなく、ラスタライズされた埋め込み画像も含む)を開きます:inkscape rasterized.pdf
  4. 誤ってラスタライズされた画像に到達するまで、後者のすべてのアイテムのグループ化を解除します
  5. 埋め込み画像を2。から4。にコピーします。間違ってラスタライズされたものを置き換える
  6. Inkscapeを使用して通常どおりPDFとして保存します。

結果:透明な形状、高解像度の画像

3
J..

この明らかなバグを解決するために私が見つけた解決策の1つは、Inkscapeで名前を付けて保存:EPS、次にepstopdfです。結果は完璧に見えます

3
user370171

.svgパッケージの.pdfを使用して、inkscape rsvg-convertファイルをlibrsvg2-binに変換することもできます。

rsvg-convert -f pdf -o foo.pdf foo.svg

これにより、ファイルの透明度が維持されました。

3
user168118