当前位置: 首页 > news >正文

DWG转PDF字体研究记录

1.前言

       最近需要对PDF中的符合业务规则的文字进行提取,发现有些文字不是文字信息形式存储,而是polyline形式表达,意味着仅仅有形体上的表达,丢失了原本的文字信息。

经过沟通得知,这些PDF是AutoCAD软件导出的,拿到原始dwg文件进行了测试和研究。

2.记录

AutoCAD、ODA等软件中导出PDF时都支持是否将文字处理为几何导出,如下图,其中ODA的设置要更丰富些,包括TrueType字体、SHX字体的导出设置。

其他PDF相关软件工具也针对字体有不同的处理措施。

为什么关于DWG <——>PDF之间的互转关于字体话题有这么丰富的内容呢?究其原因是DWG中为了支持更丰富的字体样式(包括建筑行业中的专业符号等,如钢筋符号)表达引入了SHX字体,而PDF不支持SHX类型字体,因此一些软件、工具在处理DWG和PDF的互通时就有n多的补偿措施,且这些补偿措施是不统一的,也就产生了信息损失情况下的互转质量高低的感官,但无论如何都可能会有信息损失。

{
"呼吁": "PDF何时能支持SHX字体类型?或有其他让DWG、PDF无损互转的方案吗?"
}

下面我们一起来扒一扒各软件工具关于此议题的(补偿)处理措施。 

2.1 AutoCAD

2.1.1 导出PDF

nullicon-default.png?t=N7T8https://www.autodesk.com/support/technical/article/caas/sfdcarticles/sfdcarticles/How-to-create-selectable-and-searchable-text-in-a-PDF-from-AutoCAD.htmlHelpicon-default.png?t=N7T8https://help.autodesk.com/view/ACD/2022/ENU/?guid=GUID-EC9C6D47-814E-476D-840F-04104CF72B78

https://www.autodesk.com/support/technical/article/caas/sfdcarticles/sfdcarticles/How-to-create-selectable-and-searchable-text-in-a-PDF-from-AutoCAD.html 

2016版以前会将shx字体导出为光栅化的图片,2016及以后版本支持导出为矢量(polyline)+PDF注释信息,注意导出为PDF注释信息是补偿措施,因为只有几何上的形体显然不能满足某些场景的需求(比如提取文字内容)。

当然也有一些其他工具支持DWG导出为PDF,且对shx文字有对应处理。

2.1.2 导入PDF 

 https://help.autodesk.com/view/ACD/2022/ENU/?guid=GUID-1202CC8A-364F-4E93-8E86-6F476CD83C72


autocad说明里面值保留TRUE TYPE FONT,但是不可能让用户使用ttf字体的,偏离了目的,图纸字体效果就变了。

同时提供了工具命令(PDFSHXTEXT)以支持用户将指定的,原始为shx字体的几何“拟合”还原为文字,同样,这是对于PDF涉及到SHX字体的补偿措施。

2.2 ODA

2.2.1 导出PDF

ODA支持是否SHX字体导出为geometry选项,

  1. 如果勾选时导出为polyline或者三角面;
  2. 如果不勾选应该是将dwg中的shx字体统一替换为TTF(True Type Font)字体,然后导出,这样就有了完整的字体信息,代价是shx字体文字形体上发生了变化。 

 

2.2.2 导入PDF 

同样提供了丰富的“补偿措施”以提高信息保真程度,在流畅性等需求的平衡中。

 ODA Drawings SDKicon-default.png?t=N7T8https://docs.intellicad.org/files/oda/2021_11/oda_drawings_docs/frames.html?frmname=topic&frmfile=Importing_from_a_PDF_file.html

2.3 Adobe

据称,Adobe有一款杰出的转换工具,嗯,不妨试一试。

尝试安装了下,有试用时间,但在尝试将dwg转为pdf功能时失败了,给出的的提示是在windows系统上无法使用此功能。。。

这是adobe关于字体的说明。 

https://helpx.adobe.com/my_en/acrobat/using/pdf-fonts.html

2.4 其他

blue beam:

Raster, Vector and Text - What's Really in My PDF?How to determine whether your PDF is raster- or vector-based, and how this affects the ability to snap to an object or select text. Relevant Products for Windows and Revu for Mac You're unable to snap to an object when taking measurements. You cannot select or search for text. Why does this happen? The reason both of these occur is that PDFs aren't all created in the same way. Some PDFs contain more information than others, even though they seem indistinguishable at first. The page may appear to contain lines and characters, but the underlying elements that represent them in the PDF may not be vector lines and text elements, which are needed to snap to content and search and select text. Raster vs. Vector Content Let's look at the difference between raster and vector content in a PDF. Raster PDF Vector PDF A raster image is created from a series of square dots called pixels. One example of a raster PDF is a file created from scanning a paper. A scanned PDF is createdicon-default.png?t=N7T8https://support.bluebeam.com/articles/raster-vector-and-text-whats-really-in-my-pdf/

aspose:

Text missing in generated PDF from DWG - Free Support Forum - aspose.comI convert a dwg file to pdf , but some texts(shx font) do not display(blank) then i try to call ‘setPrimaryFontName’ method but useless; so do you support display shx font text? thank you. i attached the dwg file and…icon-default.png?t=N7T8https://forum.aspose.com/t/text-missing-in-generated-pdf-from-dwg/201211

4 Ways to Convert DWG to PDF With/Without AutoCAD (Free Incl.):

4 Ways to Convert DWG to PDF With/Without AutoCAD (Free Incl.)In this article, you can receive 4 easy and workable ways to convert DWG to PDF, whether you have or haven’t AutoCAD on your computer.icon-default.png?t=N7T8https://www.cisdem.com/resource/convert-dwg-to-pdf.html

3.写在后面

这也和提升dwg字体相关显示效率议题相关。

有意思的是老外将中文、日文和朝鲜文等成为亚洲文字( Asian Font),单独作为文字领域的一个范畴来研究处理 。

"PDF何时能支持SHX字体类型?或有其他让DWG、PDF无损互转的方案吗?"

在当前的情况下结合各软件及提供的各种设置,尝试去寻找适合对应业务场景的方案。

相关文章:

DWG转PDF字体研究记录

1.前言 最近需要对PDF中的符合业务规则的文字进行提取&#xff0c;发现有些文字不是文字信息形式存储&#xff0c;而是polyline形式表达&#xff0c;意味着仅仅有形体上的表达&#xff0c;丢失了原本的文字信息。 经过沟通得知&#xff0c;这些PDF是AutoCAD软件导出的&#xf…...

Java中如何处理日期和时间?

Java中如何处理日期和时间&#xff1f; 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将探讨如何在Java中处理日期和时间&#xff0c;这是开发中非常常…...

Kubernetes之Pod详解

如何更好的使用好Pod&#xff1f;本文尝试从Pod组成、Namespace共享、控制器实现原理及Pod设计原则4个方面对Pod的使用进行详细阐述&#xff0c;希望对您 一、 Kubernetes Pod介绍 在 Kubernetes 中&#xff0c;Pod 是最小的可部署单元&#xff0c;包含一个或多个容器。Pod 提…...

长亭谛听教程部署和详细教程

PPT 图片先挂着 挺概念的 谛听的能力 hw的时候可能会问你用过的安全产品能力能加分挺重要 溯源反制 反制很重要感觉很厉害 取证分析 诱捕牵制 其实就是蜜罐 有模板直接爬取某些网页模板进行伪装 部署要求 挺低的 对linux内核版本有要求 需要root 还有系统配置也要修改 …...

修复漏洞Windows 2012 Server R2(CVE-2016-2183)、(CVE-2015-2808)、(CVE-2013-2566)

修复漏洞 漏洞风险等级评定标准主机风险等级评定标准漏洞概括利用注册表修复漏洞查看修复后的漏洞漏洞风险等级评定标准 危险程度危险值区域危险程度说明高7 <=漏洞风险值<= 10攻击者可以远程执行任意命令或者代码,或对系统进行远程拒绝服务攻击。中4 <=漏洞风险值&l…...

Linux的基本指令第二篇

1.cat - 查看文件 语法&#xff1a;cat [选项] [文件] 功能&#xff1a; 查看目标文件的内容 -b 对非空输出行编号 -n对输出的所有行编号 -s不输出多行空行 现有一个文件test.c cat -n test.c cat -b test.c cat -s test.c 创建一个新文件 加入源文件的内容 || …...

php百度云账户余额查询API示例

1、官方文档地址&#xff1a;账户余额查询 请求结构 POST /v{version}/finance/cash/balance HTTP/1.1 Host: billing.baidubce.com ContentType: application/json; charsetutf-8 Content-Length: <Content_Length> Authorization: authorization string 响应参数 …...

自动化开发任务:在PHP框架中实现自定义命令

在现代Web开发中&#xff0c;自动化是提高开发效率和减少重复工作的关键。PHP框架&#xff0c;如Laravel、Symfony等&#xff0c;提供了强大的自定义命令功能&#xff0c;允许开发者创建自己的artisan命令来执行各种自动化任务。本文将详细介绍如何在PHP框架中实现自定义命令&a…...

如何在Java中实现数据加密与解密?

如何在Java中实现数据加密与解密&#xff1f; 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将探讨如何在Java中实现数据加密与解密&#xff0c;这是保…...

Nginx日志管理之日志分析

Nginx 通常被置于服务器访问的入口&#xff0c;其访问日志可以全局记录用户访问的来源、响应时间&#xff0c;以及用户行为热点等数据&#xff0c;通过对访问日志的分析&#xff0c;可以清晰地了解用户来源、用户行为习惯及自身服务器性能等情况。借助 ELK 的高性能处理能力&am…...

利用 Microsoft ChatGPT 和 OPC UA 改变工业格局

在本文中&#xff0c;我们将探讨开放性在工业物联网中的作用&#xff0c;以及Microsoft为创建基于OPC UA的开放平台所做的努力。我们将讨论 Microsoft 开放战略的四大支柱&#xff0c;以及标准化信息模型以实现互操作性的重要性。此外&#xff0c;我们将深入探讨传统接口和数据…...

力扣-两数之和

文章目录 题目题解方法1-暴力方法2-哈希 题目 原题链接&#xff1a;两数之和 题解 方法1-暴力 我最先想到的方法就是暴力&#xff0c;两层for循环&#xff0c;也能通过。&#xff08;拿到算法题在没有思路的时候暴力就是思路&#xff0c;哈哈哈&#xff09; public class T…...

基于CDMA的多用户水下无线光通信(3)——解相关多用户检测

继续上一篇博文&#xff0c;本文将介绍基于解相关的多用户检测算法。解相关检测器的优点是因不需要估计各个用户的接收信号幅值而具有抗远近效应的能力。常规的解相关检测器有运算量大和实时性差的缺点&#xff0c;本文针对异步CDMA的MAI主要来自干扰用户的相邻三个比特周期的特…...

哔哩哔哩视频URL解析原理

哔哩哔哩视频URL解析原理 视频网址解析视频的原理通常涉及以下几个步骤&#xff1a; 1、获取视频页面源代码&#xff1a;通过HTTP请求获取视频所在网页的HTML源代码。这一步通常需要处理反爬虫机制&#xff0c;如验证码或用户登录。 2、解析页面源代码&#xff1a;分析HTML源代…...

个人成长的利器:复盘教你如何避免重蹈覆辙

前言 &#x1f4eb; 大家好&#xff0c;我是南木元元&#xff0c;热爱技术和分享&#xff0c;欢迎大家交流&#xff0c;一起学习进步&#xff01; &#x1f345; 个人主页&#xff1a;南木元元 最近忙着学习和工作&#xff0c;更新比较少&#xff0c;期间一直在思考如何才能快速…...

2025秋招NLP算法面试真题(一)-史上最全Transformer面试题

史上最全Transformer面试题 Transformer为何使用多头注意力机制&#xff1f;&#xff08;为什么不使用一个头&#xff09;Transformer为什么Q和K使用不同的权重矩阵生成&#xff0c;为何不能使用同一个值进行自身的点乘&#xff1f; &#xff08;注意和第一个问题的区别&#…...

基于STM32的智能家居安防系统

目录 引言环境准备智能家居安防系统基础代码实现&#xff1a;实现智能家居安防系统 4.1 数据采集模块4.2 数据处理与分析4.3 控制系统实现4.4 用户界面与数据可视化应用场景&#xff1a;智能家居安防管理与优化问题解决方案与优化收尾与总结 1. 引言 智能家居安防系统通过使…...

React+TS前台项目实战(十二)-- 全局常用组件Toast封装,以及rxjs和useReducer的使用

文章目录 前言Toast组件1. 功能分析2. 代码详细注释&#xff08;1&#xff09;建立一个reducer.ts文件&#xff0c;用于管理状态数据&#xff08;2&#xff09;自定义一个清除定时器的hook&#xff08;3&#xff09;使用rxjs封装全局变量管理hook&#xff08;4&#xff09;在to…...

總結光學(完)

參考: 陈曦<<光学讲义>>http://ithatron.phys.tsinghua.edu.cn/downloads/optics.pdf 1 波动光学 最简单的一种波是平面波。........... 一个波的波前是指相位相同的点构成的面。波的传播方向垂直于波面。 我们在此将讨论的光波特指波长远大于原子尺度又远小于…...

线程C++

#include <thread> #include <chrono> #include <cmath> #include <mutex> #include <iostream> using namespace std;mutex mtx; void threadCommunicat() {int ans 0;while (ans<3){mtx.lock();//上锁cout << "ans" <…...

DAMA学习笔记(二)-数据治理

1.引言 数据治理&#xff08;Data Governance&#xff0c;DG&#xff09;的定义是在管理数据资产过程中行使权力和管控&#xff0c;包括计划、监控和实施。在所有组织中&#xff0c;无论是否有正式的数据治理职能&#xff0c;都需要对数据进行决策。建立了正式的数据治理规程及…...

07-appium常用操作

一、press_keycode 1&#xff09;方法说明 press_keycode方法是appium的键盘相关函数&#xff0c;可以实现键盘的相关操作&#xff0c;比如返回、按键、音量调节等等。也可以使用keyevent方法&#xff0c;功能与press_keycode方法类似。 常见按键编码&#xff1a;https://www.…...

使用lua开发apisix自定义插件并发布

接到老大需求&#xff1a;需要对cookie进行操作&#xff0c;遂查询apisix的自带插件&#xff0c;发现有&#xff0c;但不满足&#xff0c;于是自己开发了一个插件并部署&#xff0c;把开发部署流程写在这里打个日志怕以后忘掉。 一、需求 插件很简单&#xff0c;就是在reques…...

43 mysql insert select 的实现

前言 我们这里 来探讨一下 insert into $fields select $fields from $table; 的相关实现, 然后 大致来看一下 为什么 他能这么快 按照 我的思考, 应该里里面有 批量插入才对, 但是 调试结果 发现令我有一些意外 呵呵 果然 只有调试才是唯一的真理 测试数据表如下 CREATE…...

趣味学Python,快速上手神奇的itertools库!

大家好&#xff0c;我是菜哥&#xff01; 在学习Python编程的过程中&#xff0c;我们经常会使用到一些非常有用的标准库&#xff0c;它们不仅可以让我们的代码更加简洁高效&#xff0c;还能帮我们解决很多复杂的问题。Python标准库为我们提供了大量实用的工具和模块&#xff0c…...

富文本编辑器CKEditor

介绍 富文本编辑器不同于文本编辑器,它提供类似于 Microsoft Word 的编辑功能 在Django中,有可以现成的富文本三方模块django-ckeditor,具体安排方式: pip install django-ckeditor==6.5.1官网:Django CKEditor — Django CKEditor 6.7.0 documentation 使用方式 创建项…...

【机器学习】音乐大模型的深入探讨——当机器有了创意,是机遇还是灾难?

&#x1f440;国内外音乐大模型基本情况&#x1f440; ♥概述♥ ✈✈✈如FreeCompose、一术科技等&#xff0c;这些企业专注于开发人工智能驱动的语音、音效和音乐生成工具&#xff0c;致力于利用核心技术驱动文化产业升级。虽然具体公司未明确提及&#xff0c;但可以预见的是…...

机器人学习和研究的物质基础包含哪些内容?

为啥写这个&#xff1f; 在很多博客里面提及物质基础&#xff0c;没想到询问的也非常多&#xff0c;写一篇详细一点的。 之前的故事 不合格且失败机器人讲师个人理解的自身课程成本情况-CSDN博客 迷失自我无缘多彩世界-2024--CSDN博客 物质基础与情绪稳定的关系-CSDN博客 …...

Python中的交互式GUI开发:与MATLAB uicontrol的比较

Python中的交互式GUI开发 Python中的交互式GUI开发&#xff1a;与MATLAB uicontrol的比较**Python GUI开发库****Tkinter****PyQt/PySide** **与MATLAB的比较****总结** Python中的交互式GUI开发&#xff1a;与MATLAB uicontrol的比较 在MATLAB中&#xff0c;uicontrol 是一个…...

js 实现将后端请求来的 Blob 数据保存到用户选择的任意目录

js实现将后端请求来的 Blob 数据保存到用户选择的任意目录 实现方式 实现方式 实现方式是使用 window 的 showSaveFilePicker 方法。Window 接口的 showSaveFilePicker() 方法用于显示一个文件选择器&#xff0c;以允许用户保存一个文件。可以选择一个已有文件覆盖保存&#xf…...