7

外部ユーティリティ (pdf2swf など) を使用してベクター SWF アニメーションをコンパイルするために、グラフィックのリストを PDF 形式の個別のフレームとしてエクスポートしようとしています。残念ながら、一部の特殊文字 (度記号や三重点など) は、エクスポートされた PDF ファイルで破損しています。それは、すべてのロシア語の手紙の運命でもあります。Mathematica は、MmaからSWFに直接エクスポートされる場合、リスト内のグラフィックスをラスタライズすることに注意してください。私の場合、満足のいく結果が得られません。

エクスポートされたグラフィックでこれらの文字を保持する方法はありますか?

単一のグラフィックはグラフィック エディタで手動で編集できますが、数百フレームのビデオを編集することはほとんど不可能です。一部のシンボルは、次のカスタム関数によって保持できます。

ExportPDF[filename_, elem_, 
  opts : OptionsPattern[{Export, Outlines -> True}]] := Module[{$elem},
  $elem = Style[elem, Background -> None];
 If[OptionValue[Outlines] == True
   , $elem = 
    First@ImportString[ExportString[$elem, "PDF"], "PDF", 
      "TextMode" -> "Outlines"]
   ];
  Export[filename, $elem, FilterRules[{opts}, Options[Export]]]
 ]

残念ながら、常に役立つとは限りません。

4

2 に答える 2

6

1 つの回避策は、PDF 形式ではなく EMF にエクスポートすることです。

Export["C:\\1.emf", 
 Plot[Sin[x], {x, 0, Pi}, PlotLabel -> 
   "\:0420\:0443\:0441\:0441\:043a\:0438\:0435 \:0431\:0443\:043a\:0432\:044b"]]

必要に応じて、EMF を PDF または SWF にさらに変換できます。Mathematicaからの高品質 EMF エクスポートに関する一般的なヒントを参照してください

一見確実に機能するもう 1 つの方法は、キリル文字のみInsetをアウトラインに変換してから、または を使用してグラフィックスに配置することLabeledです。

plotLabel = 
  First@ImportString[ExportString[
    "\:0420\:0443\:0441\:0441\:043a\:0438\:0435 \:0431\:0443\:043a\:0432\:044b",
       "PDF"], "PDF"];
Labeled[Plot[Sin[x], {x, 0, Pi}], plotLabel, Top]

または、アウトライン化されたテキストを次のように直接使用できますPlotLabel

Export["C:\\1.pdf", Plot[Sin[x], {x, 0, Pi}, PlotLabel -> plotLabel]]

簡単なルーチンを作成することで、このメソッドを一般化できます。

cyrFix = First@ImportString[ExportString[#, "PDF"], "PDF"] &

次のように使用できます。

Export["C:\\1.pdf", 
 Plot[Sin[x], {x, 0, Pi}, PlotLabel -> 
  cyrFix@"\:0420\:0443\:0441\:0441\:043a\:0438\:0435 \:0431\:0443\:043a\:0432\:044b"]]
于 2011-06-16T09:45:14.407 に答える
0

Mathematica の PDF エクスポートは現在、キリル文字をサポートしておらず、ローマ字、ギリシャ語、日本語、および一部の技術記号のみをサポートしています。Mac を使用している場合は、回避策として [ファイル] > [印刷] > [PDF として保存] を選択できます。

于 2011-09-13T13:18:27.180 に答える