需求:将 LaTeX 中生成的伪代码 PDF 转换成 svg 或 emf 格式的矢量图,然后插入 word 或 ppt 中。
1 伪代码PDF导出为矢量图
1.1 通过 Adobe Illustrator 处理将
- 先新建一个空白的PDF,然后
文件-->置入
导入PDF;
2.选中这个图片,然后对象-->拼合透明度
,并在弹出的选择框中进行设置,将图片曲线化;
3.选中这个文件,文件-->导出-->导出为
,根据需要导出选择 svg 或者 emf 格式。
不知道为啥,感觉 Adobe Illustrator 导出 svg 的效果比导出emf图片的效果好很多。 后续如果需要 emf 格式的,可将 svg 图片插入 PPT 中,然后通过 右键-->另存为
,得到 emf 格式的图片。(使用 PPT 中图片另存为来更改图片格式,真的好用。)
1.2 通过 Inkscape 处理
注意: Win 11 上使 1.3.2 版本打开 PDF 程序会卡死,而 1.2.2 版本能正常打开 PDF 进行处理。在 Ubuntu 20.4 上使用 1.3.2 版本能正常打开 PDF 进行处理。
操作参考视频:论文技巧 用overleaf latex 生成论文的算法伪代码再用inscape插入到word文档
- 通过Inkscape打开PDF文件,选择从Poppler/Cairo导入;
2. 文件-->另存为
,选择纯 svg 格式或 emf 格式即可;
1.3 通过在线工具处理
这里提供 2 种方法:一种是直接使用在线工具;另一种是先预处理一下PDF文件,然后再使用在线工具。
(1)直接使用在线的格式转换工具,将PDF转为SVG格式
推荐使用网站:
- SVG Converter
- All to All 在线格式转换
- I2PDF
- PDF to SVG
通过这些网站可将 PDF 格式的伪代码转换为 SVG 格式矢量图,且图片中的字体不会发生变换。测试的其他几个工具在转换时,图片中的字体会发生改变。
注意: 这里提供的网站仅适用于将 PDF 转换为 SVG 格式。
(2)先将图片曲线化,然后再利用在线转换格式工具
通过 Adobe Illustrator 或 Inkscape 处理得到矢量图片的过程,其实也是将字体曲线化以后,再导出为矢量图片的。
先将PDF曲线化,然后再使用在线工具进行格式转换,即可避免字体的改变。
下面提供 3 种 PDF 曲线化操作(这 3 种操作基本一致,大同小异):
-
方法一:通过印前检查。操作见视频:使用Acrobat将PDF内的文字轮廓化 (转曲)
-
方法二:通过添加背景,然后拼合器预览。操作见博客:Adobe Acrobat DC 将PDF转曲步骤
-
方法三:通过添加水印,然后拼合器预览。操作见博客:pdf文件中的文字批量转曲的办法
注意:方法二和方法三,如果直接操作拼合器预览是没有效果的。
这里提供方法一的操作步骤:
- 工具中的印刷制作;
- 印前检查;然后另存为PDF;检查结果输出(直接关掉就行);
PDF 转曲后,再使用在线格式转换工具,得到 svg 格式或 emf 格式文件。有的时候看起来 emf 图片效果不好,可以尝试将其导出 PPT 中,然后右键取消组合或右键编辑图片或右键转换为形状后(取决于图片是什么格式的,有那个选项就选哪个就好),可能图片的效果就好了,但也不一定,也可能这样处理后格式又变了。有的在线工具,就是效果不好,建议换其他的试一下。
尝试下来,感觉转 svg 的效果会更好一些。如果确实需要 emf 格式。可以将 svg 插入 PPT 中,然后选中图片右键将其导出为 emf 格式。
PDF转 svg 工具
- https://tools.pdf24.org/zh/convert-from-pdf
PDF转 emf 工具
- https://cloudconvert.com/
- https://www.alltoall.net/pdf_emf/
1.4 导出矢量图效果
直接从LaTex中导出的伪代码PDF效果。
如果矢量化的方式不合适,会导致字体的变化。
与原PDF一致 | 字体发生了改变 |
2 对于 PDF 中矢量格式示意图提取
有时看到论文中好看的矢量图,想提取出来保存或修改使用。
2.1 通过 PPT 处理
通过将PDF另存或导出为PPT格式,即可在ppt获取到论文中的矢量图。需要选中图片以后,多次取消组合,才能进行编辑。
优点: 方便,且文档的整体和原文档相比,保留较好。
缺点: 存在图形部分分解不彻底,部分不能编辑的情况。
2.2 通过 Adobe Illustrator 或 Inkscape 处理
在软件中Adobe Illustrator中,打开PDF文件,通过多次的释放剪切蒙版和取消编组就能够进行编辑了。
优点: 对矢量图像保留的较好。
缺点: 除了图形以外的文字,由于字体缺失等原因和原来的文档有较大出入。
对于使用Inkscape导出矢量图片的过程可参见视频:分享一个从PDF提取矢量图的方法
3 一些额外说明
-
将PDF导出为PPT,图片另存为emf格式,插入word,并将文档导出为PDF。此PPT图片中的文字仍然能被选中,说明其为文字。但其他方法得到的 SVG 图片,由于字体的缺失(文字已经曲线化了,不再试文字),最终的 PDF 文件选中这些文字。
-
如果 PDF 的字体本机是存在的,则用 Adobe Illustrator 导出 SVG 文件时不用曲线化,可以得到文字仍然是文字的 SVG 图片。
-
将 PDF 导出为 PPT 真的好用,文档的格式能得到很大程度的保留。
-
将图片插入 PPT 然后再另存为其他格式的操作也真的好用。