PDF中伪代码、原理示意图等导出为矢量图

需求:将 LaTeX 中生成的伪代码 PDF 转换成 svg 或 emf 格式的矢量图,然后插入 word 或 ppt 中。

1 伪代码PDF导出为矢量图

1.1 通过 Adobe Illustrator 处理将

  1. 先新建一个空白的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 版本能正常使用。在 ubuntu 20.4 上使用 1.3.2 版本能正常打开 pdf。

操作参考视频:论文技巧 用overleaf latex 生成论文的算法伪代码再用inscape插入到word文档

  1. 通过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 格式矢量图,且图片中的字体不会发生变换。测试的其他几个工具在转换时,图片中的字体会发生改变。

(2)先将图片曲线化,然后再利用在线转换格式工具

通过Adobe Illustrator或Inkscape处理得到矢量图片的过程,其实也是将字体曲线化以后,再导出矢量图片的。

先将PDF曲线化,然后再使用在线工具进行格式转换,即可避免字体的改变。

下面提供 3 种 PDF 曲线化操作(这 3 种操作基本一致,大同小异):

  • 方法一:通过印前检查。操作见视频:使用Acrobat将PDF内的文字轮廓化 (转曲)

  • 方法二:通过添加背景,然后拼合器预览。操作见博客:Adobe Acrobat DC 将PDF转曲步骤

  • 方法三:通过添加水印,然后拼合器预览。操作见博客:pdf文件中的文字批量转曲的办法

注意:方法二和方法三,如果直接操作拼合器预览是没有效果的。

这里提供方法一的操作步骤:

  1. 工具中的印刷制作;
    在这里插入图片描述
  2. 印前检查;然后另存为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.3 导出矢量图效果

直接从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 然后再另存为其他格式的操作也真的好用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/590182.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

k8s部署maven项目

failed to verify certificate: x509: certificate signed by unknown authority 今天在执行kubectl get nodes的时候报的证书验证问题,看了一圈首次搭建k8s的都是高频出现的问题。 couldn’t get current server API group list: Get “https://kubernetes.docker…

SwiftUI 5.0(iOS 17.0,macOS 14.0+)新 Inspector 辅助视图之趣味漫谈

概览 在 SwiftUI 开发中,苹果为我们提供了多种辅助视图用来显示额外信息从而极大丰富了应用的表现力,比如:Alert、Sheet、ContextMenu 等等。 从 SwiftUI 5.0(iOS 17+)开始, 又增加了一种全新的辅助视图:Inspector。 在本篇博文中,您将学到如下内容: 概览1. Inspe…

[笔试训练](十一)

目录 031:游游的水果大礼包 032:买卖股票的最好时机(二) 033:倒置字符串 031:游游的水果大礼包 游游的水果大礼包 (nowcoder.com) 题目: 题解: 枚举:依次枚举1号礼…

连接一个 IP 不存在的主机时,会发生什么?(面试)

一、IP 不存在时 如果 IP 在局域网内,会发送 N 次 ARP 请求获得目的主机的 MAC 地址,同时不能发出 TCP 握手消息。 如果 IP 在局域网外,会将消息通过路由器发出,但因为最终找不到目的地,触发 TCP 重试流程。 二、IP…

React 第十五章 Ref

React ref 是 React 中一个用于访问组件中 DOM 元素或者类实例的方式。它允许我们直接操作 DOM,而不需要通过 state 或 props 来更新组件。 过时 API:String 类型的 Refs 在最最早期的时候,React 中 Ref 的用法非常简单,类似于 …

设计模式: 工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一,这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 工厂模式提供了一种创建对象的方式,而无需指定要创建的具体类。 工厂模式属于创建型…

如何用 Redis 实现延迟队列?

延迟队列是一种常见的消息队列模式,用于处理需要延迟执行的任务或消息。Redis 是一种快速、开源的键值对存储数据库,具有高性能、持久性和丰富的数据结构,因此很适合用于实现延迟队列。在这篇文章中,我们将详细讨论如何使用 Redis…

数据库(MySQL)基础:多表查询(一)

一、多表关系 概述 项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本上分为三种:…

【STM32+HAL】SDIO+DMA模式读写SD卡

一、准备工作 有关CUBEMX的初始化配置,参见我的另一篇blog:【STM32HAL】CUBEMX初始化配置 二、所用工具 1、芯片: STM32F407ZGT6 2、IDE: MDK-Keil软件 3、库文件:STM32F4xxHAL库 三、实现功能 实现用SDIODMA读写S…

【Linux系统编程】第十二弹---编辑器gcc/g++使用

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、什么是gcc/g 2、gcc/g编辑器的安装 3、gcc/g编译的四个步骤 2.1、预处理 2.2、编译 2.3、汇编 2.4、链接 4、函数库 …

平衡有序二叉树的构建(AVL树,一步一步讲解,看完不会来砍我)

序 纸上得来终觉浅&#xff0c;觉知此事要躬行 读者只有自己一步一步的跟着做&#xff0c;才能真正学会&#xff0c;看是看不会的 平衡有序二叉树的构建 平衡二叉树 整棵树任意一个节点的左右子树高度差值的绝对值<1&#xff08;高度相等或相差1&#xff09; demo1 根…

java中的字节流和File类

目录 正文&#xff1a; 1.File类 1.1概述 1.2常用方法 2.FileInputStream 2.1概述 2.2常用方法 3.FileOutputStream 3.1概述 3.2常用方法 总结&#xff1a; 正文&#xff1a; 1.File类 1.1概述 File类是Java中用来表示文件或目录的类&#xff0c;它提供了一系列方…

【C++语言】字符串String类的深拷贝与浅拷贝

深浅拷贝定义 拷贝对象时&#xff0c;需要创建相同的字节序、类型、和资源。 经典的string类问题 // 为了和标准库区分&#xff0c;此处使用String class String { public:/*String():_str(new char[1]){*_str \0;}*///String(const char* str "\0") 错误示范//…

Dynamic World Training Data动态世界训练和验证数据集(土地分类和土地利用)

摘要: 动态世界训练数据(Dynamic World Training Data )是一个由超过 50 亿像素的人工标注欧空局哨兵-2 卫星图像组成的数据集,分布在从世界各地收集的 24000 块瓷砖上。该数据集旨在训练和验证自动土地利用和土地覆被制图算法。分辨率为 10 米的 5.1km x 5.1km 瓦片采用十…

软件系统安全设计(安全保证措施)

软件安全保证措施word 软件所有全套资料获取进主页或者本文末个人名片直接。

欧拉回路(leetcode 重新安排行程)

先学习一下欧拉回路是怎么一回事。 对于图中这七个节点&#xff0c;从节点1出发&#xff0c;最终要到达节点1&#xff0c;并且每条路只能走一次&#xff0c;且每条路都得走过一次。 使用dfs&#xff0c;如果算法按照字典序的排列方式选择下一个节点。 第一部分&#xff1a;那…

设计模式: 模板模式

目录 一&#xff0c;模板模式 二&#xff0c;特点 三&#xff0c;组成部分 四&#xff0c;实现步骤 五&#xff0c;案例 一&#xff0c;模板模式 模板模式&#xff08;Template Pattern&#xff09;是一种行为型设计模式&#xff0c;它在超类中定义了一个算法的骨架&#…

spring boot 启动流程详解

主启动类 SpringBootApplication MapperScan("com.example.mapper") public class StableBootApplication {public static void main(String[] args) {SpringApplication.run(StableBootApplication.class,args);} }SpringApplication类中有个静态run()方法&#xf…

ICode国际青少年编程竞赛- Python-1级训练场-for循环练习

ICode国际青少年编程竞赛- Python-1级训练场-for循环练习 1、 for i in range(3):Dev.step(4)Dev.turnLeft()2、 for i in range(3):Dev.step(2)Dev.turnRight()Dev.step(2)Dev.turnLeft()3、 for i in range(3):Dev.step(2)Dev.turnRight()Dev.step(2)Dev.turnLeft()4、 for…

飞致云开源社区月度动态报告(2024年4月)

自2023年6月起&#xff0c;中国领先的开源软件公司FIT2CLOUD飞致云以月度为单位发布《飞致云开源社区月度动态报告》&#xff0c;旨在向广大社区用户同步飞致云旗下系列开源软件的发展情况&#xff0c;以及当月主要的产品新版本发布、社区运营成果等相关信息。值得注意的是&…