gpt4 book ai didi

pdf - 将图形导出为 PDF 时,可以在绘图标签中导出特殊符号/西里尔字母吗?

转载 作者:行者123 更新时间:2023-12-04 12:13:06 27 4
gpt4 key购买 nike

我试图将图形列表导出为 PDF 格式的单独帧,以便在外部实用程序(例如 pdf2swf)的帮助下编译矢量 SWF 动画。不幸的是,导出的 PDF 文件中的某些特殊字符(例如度数符号或三点)已损坏。这也是所有俄文字母的宿命。请注意,当 Mathematica 将列表中的图形直接从 Mma 导出到 SWF 时,它会光栅化列表中的图形,这在我的情况下会产生不令人满意的结果。

Is there a way to preserve those letters in exported graphics?



单个图形可以在图形编辑器中手动编辑,但数百帧视频几乎不可能。一些符号可以通过以下自定义函数保留:
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]]]
]

不幸的是,它并不总是有帮助。

最佳答案

一种解决方法是导出为 EMF 而不是 PDF 格式:

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。见 here从 Mathematica 导出高质量 EMF 的一般提示。

另一种看似可靠的方法是仅将西里尔文文本转换为轮廓,然后使用 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"]]

关于pdf - 将图形导出为 PDF 时,可以在绘图标签中导出特殊符号/西里尔字母吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6368642/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com