modetest是libdrm提供的DRM(Direct Rendering Manager)设备调试工具,用于检测和列出可用的显示设备、分辨率模式,并支持手动设置显示模式和显示图像等功能。文章详细介绍了modetest的安装配置、基本用法和高级用法,包括列出DRM设备信息、显示支持的模式、设置分辨率和刷新率、显示测试图像以及列出CRTC和Planes等。此外,还提供了modetest在Ubuntu/Debian和Buildroot环境中的安装方法,以及各种命令的示例输出和使用说明。 modetest作为Linux系统下libdrm库提供的一个调试工具,主要用于对DRM设备进行调试和检测。DRM,即Direct Rendering Manager,是一种Linux内核的组件,负责管理系统的显示设备,提供高效直接的访问,并允许用户空间程序控制图形硬件。modetest工具可以列出系统中所有可用的显示设备以及它们支持的显示模式,这对于系统调试和图形性能优化至关重要。 在使用modetest时,用户可以检测到支持的显示分辨率,设置特定的显示模式,包括分辨率和刷新率等。这对于开发和调试图形驱动程序,以及对于普通用户解决显示问题具有极大的帮助。除了设置显示模式,modetest还能够显示测试图像,帮助用户验证显示设备和驱动程序的显示功能是否正常工作。 文章中详细介绍了modetest的安装配置方法,包括在Ubuntu/Debian等流行Linux发行版上通过包管理器安装,以及在Buildroot环境下进行源码编译安装的详细步骤。这对于开发人员和系统管理员来说是非常有用的,因为有时他们可能需要最新的源码或者定制化的安装选项。 modetest的用法包括基本和高级两个层次。在基本用法中,用户可以使用简单的命令行参数列出DRM设备信息、显示支持的模式等。而在高级用法中,可以更深入地操作,如控制CRTC(显示控制器)和Planes(覆盖层)等组件,这对于高级用户和开发者而言是必不可少的技能。 文章不仅提供了命令的示例输出,还包含了各种使用场景下的详细说明,确保用户能够理解每个参数的含义,并能够根据自己的需求合理地运用modetest。这些内容能够帮助用户更好地理解其硬件设备,从而进行针对性的配置和优化。 在实际操作中,modetest能够输出详尽的信息,这些信息包括但不限于设备ID、总线类型、连接类型、连接器ID、编码器ID、CRTC ID、模式、宽高比、刷新率、像素时钟等。有了这些数据,用户或开发者可以更精确地调整和优化显示设置,提高显示性能和稳定性。 此外,modetest工具还支持将显示图像直接输出到屏幕上。这对于测试新的图形应用程序或者直接对显示硬件进行测试具有不可替代的价值。用户可以通过modetest指定显示图像文件,然后观察图像在屏幕上的显示效果,从而判断显示设备是否正常工作。 modetest是一个功能全面、用途广泛的Linux DRM设备调试工具,它对于Linux系统下的图形调试工作来说是不可或缺的。通过熟练掌握modetest的使用,无论是普通用户还是专业开发者,都可以更加有效地管理和优化他们的显示环境。
2026-03-11 11:53:15 5KB 软件开发 源码
1
本文详细介绍了如何在Unity中接入抖音小游戏SDK,包括环境搭建、SDK初始化、登录、分享、添加到桌面、侧边栏功能以及流量主广告接入等核心功能。文章提供了完整的代码示例,涵盖了从基础配置到高级功能的实现步骤,适合开发者快速上手抖音小游戏的开发。此外,还介绍了如何通过抖音SDK实现用户登录、分享功能、广告展示等常见需求,并提供了详细的代码注释和实现逻辑。 在现代的游戏开发过程中,集成不同平台的SDK(软件开发工具包)是实现游戏跨平台运行、分享和变现的常见做法。Unity,作为一个流行的游戏开发引擎,通过接入特定的SDK,可以将游戏发布到抖音小游戏平台,从而触及更多潜在玩家和观众。本文档着重于指导开发者如何将Unity项目与抖音小游戏SDK相结合,实现一系列关键的游戏功能。 环境搭建是开发过程中的首要步骤。在Unity中接入抖音小游戏SDK之前,需要确保Unity编辑器版本与SDK兼容,并且安装了相应的插件和工具。环境搭建还包括了项目的配置,确保SDK能在Unity项目中被正确识别和调用。 接下来,SDK初始化是确保游戏能够在抖音平台上运行的基础。开发者需要在项目中引入SDK提供的API接口,并按照抖音官方的指导完成初始化。这一过程不仅包括了代码层面的集成,也涉及到一些项目设置和资源的配置。 登录功能的实现让玩家在进入游戏时可以使用自己的抖音账号进行身份验证。这不仅提升了玩家的便利性,也使得游戏开发商能够获取玩家数据,进行个性化服务和管理。SDK提供的一系列API使得开发者能够快速实现这一功能,并通过回调函数处理登录状态。 分享功能是当前社交网络平台上不可或缺的一部分,通过分享游戏的内容和成果,可以大大增加游戏的曝光度和用户粘性。抖音小游戏SDK允许开发者通过简单的接口调用,实现在游戏内添加分享按钮,并通过抖音平台分享内容到用户的动态或者朋友圈。 添加到桌面功能则是为了让游戏更方便地被玩家访问。这一功能能够将游戏直接添加到用户的手机桌面上,省去了用户需要从抖音应用中搜寻和启动游戏的步骤。SDK提供的相关代码示例和API让这一过程变得简单易行。 侧边栏功能的实现则是在游戏界面中加入侧边栏,该侧边栏可以展示各种功能模块,例如排行榜、攻略等。通过抖音SDK实现的侧边栏功能不仅增强了游戏的可玩性,也增加了游戏的互动性。 流量主广告接入是帮助开发者在游戏中实现变现的重要手段。抖音小游戏SDK提供了接入广告的接口和示例代码,开发者可以通过这些工具在游戏中的合适位置展示广告,从而吸引玩家的注意力,并将流量转化为实际的收益。 文章提供的代码示例覆盖了从基础配置到高级功能的实现步骤,对于希望快速上手抖音小游戏开发的开发者来说,这些示例能够大大减少摸索和学习的时间。每个功能模块的代码都附有详细的注释,解释了代码的功能和实现逻辑,这无疑为开发者的理解和后续开发提供了极大的帮助。 此外,文档还可能涉及到调试和问题解决的方法。在实际的开发过程中,开发者可能会遇到各种各样的问题,如功能实现不符合预期、与抖音SDK的接口对接出现错误等。因此,文档可能提供了常见问题的解决方案,或者介绍了调试技巧,帮助开发者有效地解决这些问题。 随着移动互联网和社交平台的发展,小游戏市场呈现出了巨大的潜力,而Unity与抖音小游戏SDK的结合为开发者提供了一种全新的方式来触及这一市场。通过本文档的指导,开发者不仅能够学习如何接入SDK,还可以深入理解如何利用SDK实现游戏的多样化功能和商业价值。
2026-03-11 11:37:55 19KB 软件开发 源码
1
本文详细介绍了如何在SpringBoot项目中使用JCO(Java Connector for SAP)实现与SAP系统的接口调用。首先解释了JCO中间式接口的工作原理及其优缺点,随后分步骤讲解了JCO接口的开发流程,包括配置系统连接、获取SAP方法、传递参数、执行方法及释放连接。文章还提供了基于SpringBoot的实际项目开发示例,涵盖两种连接配置方式(文件配置和属性文件配置),并分享了封装连接池工具类的方法。最后通过一个完整的Controller和Service层示例,展示了如何调用SAP接口并处理返回结果。文中还提及了常见问题(如DLL版本冲突)的解决方案,并附有相关资源下载链接。 在软件开发领域,SpringBoot作为企业级开发框架的流行选择之一,其与SAP系统的集成是一项重要的技能点。SAP作为全球领先的ERP系统解决方案提供商,为企业提供了强大的业务处理能力。通过Java Connector(JCO)接口,SpringBoot项目能够与SAP系统进行有效交互,实现业务流程的自动化处理。 JCO接口是SAP提供的用于实现Java程序与SAP系统之间通信的接口库。它支持同步与异步通信,可以用来调用远程函数模块或者从SAP系统中检索数据。JCO工作原理是通过一个或多个连接到SAP系统的网关,利用已经配置好的连接参数,将Java应用中的方法调用转换为对SAP系统中的RFC(Remote Function Call)调用。 在进行JCO接口开发时,首先需要在SpringBoot项目中进行系统配置,包含连接的配置,这包括了网络连接的基本参数,如服务器地址、系统编号、客户端编号、语言等。同时,还需要处理安全认证,如用户登录名和密码。随后,开发者需要获取SAP系统中相应的方法,并且根据方法参数的要求,准备好需要传递的数据。在执行方法调用后,需要关注结果的处理,并且及时释放连接资源,避免造成不必要的系统负担。 文章提供了一个完整的示例,演示了如何在SpringBoot的Controller层和Service层实现对SAP接口的调用。在Service层中封装了对SAP的调用逻辑,并在Controller层中通过HTTP请求触发调用。这不仅展示了如何实现功能,还演示了如何组织代码结构,使其更加清晰和易于维护。 在开发过程中,可能会遇到各种问题,例如DLL版本冲突是JCO开发中常见的一种问题。解决这类问题通常需要检查和配置SAP系统的dll文件和Java虚拟机的配置,以确保两者能够兼容。 文章还提到了两种配置JCO连接的方式,分别是文件配置和属性文件配置,后者更适合在生产环境中使用,因为它可以更好地与SpringBoot的配置系统结合。 为了帮助开发者更好地理解和应用这些知识,作者还提供了相关资源的下载链接,包括源代码包、文档和可能需要的软件包。这些资源的共享,极大地便利了学习和实际开发的过程。 在编程实践中,对SAP接口的调用往往涉及到企业核心业务逻辑,因此在处理和实现时需要格外注重代码的健壮性和安全性。随着企业数字化转型的不断深入,掌握SpringBoot调用SAP接口的能力,将有助于提升开发人员在现代企业应用开发中的竞争力。
2026-03-11 11:24:04 32KB 软件开发 源码
1
基恩士PLC KV8000+XH16EC总线控制,全ST程序实例,本人自己开发全程序无加密,公司级框架,功能齐全,提供项目源码框架FB源码,触摸屏源码。 需要一定ST基础才能看懂。 重在分享编程思想 没用过该控制器的请慎拍。 请使用11.10版本开发环境打开。 一起学习、探讨、优化Easy系列电气框架,让Easy系列框架更健壮更简单。
2026-03-11 10:57:41 849KB
1
这篇介绍在Linux最小系统开发板上如何实现行车记录仪的功能,开发板自带了8G的EMMC,也可以外扩SD卡。 首先,在设计行车记录仪这个项目之前,要先了解清楚行车记录仪的功能。 (1)行车记录运行起来后,需要间隔循环录制视频保存,一般是1~10分钟一段视频,这样设计的原理是方便按时间查找视频,也防止以为情况损坏视频编码, 导致视频无法正常播放。 (2)当车辆发生碰撞、急刹车等紧急情况下,自动录制视频当前时间段视频保存,方便后续直接查看。这个功能需要加速度计的支持,检测车辆的紧急刹车,碰撞等姿态。 当前项目里摄像头采用USB免驱摄像头替代,视频编码功能采用ffmpeg实现,所以需要交叉编译ffmpeg到嵌入式开发板上。 【行车记录仪项目设计在Linux上的实现】 行车记录仪是一种重要的车载设备,它记录行车过程中的视频和音频信息,用于事故记录和证据提供。在Linux最小系统开发板上实现行车记录仪功能,需要考虑以下几个关键点: 1. **循环录制**: 行车记录仪在启动后会持续录制视频,并按照设定的时间间隔(如1至10分钟)保存成单独的视频片段。这种设计便于根据时间戳快速查找和回放视频,同时,如果某个片段因意外损坏,也不会影响其他视频的完整性。 2. **紧急情况录制**: 当车辆经历碰撞或急刹车等紧急状况时,行车记录仪应能自动保存当前时间段的视频。这需要集成加速度计来检测车辆的异常运动状态,以便触发紧急录制功能。 3. **硬件选择与软件实现**: 在当前项目中,摄像头选择USB免驱型号,简化了硬件兼容性问题。视频编码部分采用ffmpeg工具,这需要在嵌入式开发板上进行交叉编译ffmpeg以适应Linux环境。交叉编译步骤包括下载ffmpeg源码,配置编译选项,编译并安装到目标目录。 例如,交叉编译ffmpeg的命令可能如下所示: ``` [root@xl ffmpeg]# ./configure --disable-shared --enable-static \ --prefix=_install --cross-prefix=/work/arm-linux-gcc/opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux- \ --arch=arm --target-os=linux --enable-gpl --disable-bzlib --disable-zlib \ --extra-cflags=-I/work/ffmpeg/x264/x264-snapshot-20160527-2245/_install/include/ \ --extra-ldflags=-L/work/ffmpeg/x264/x264-snapshot-20160527-2245/_install/lib \ --enable-ffserver --enable-ffmpeg --enable-libx264 [root@xl ffmpeg-3.0.2]# make && make install ``` 4. **音频和视频采集**: 音频采集通常使用ALSA(Advanced Linux Sound Architecture)框架,而视频采集则通过V4L2(Video for Linux Two)接口进行,以捕获USB摄像头的数据。 5. **项目代码结构**: 项目代码可能包含多个模块,如视频录制、音频采集、加速度计数据处理等。对于每个功能,代码中会有相应的注释解释其作用。例如,10秒录制一段视频并以时间戳命名文件,这部分代码会直接处理ffmpeg的编码和保存操作。 6. **驱动程序与系统集成**: 要使行车记录仪在Linux环境下正常工作,需要确保所有硬件设备的驱动程序已正确安装和配置。在本项目中,加速度计驱动代码不在此处展示,但需要确保它能正确与系统交互,检测到碰撞和急刹车事件。 7. **存储管理**: 开发板内置8GB EMMC,也可以扩展SD卡作为存储介质。系统需管理好存储空间,确保视频文件的有效存储和循环覆盖,避免存储耗尽。 通过上述步骤,可以构建一个基本的Linux行车记录仪系统。然而,实际项目可能需要进一步优化,例如添加网络传输功能,实现远程视频查看,或者增加用户界面,提升用户体验。此外,考虑到实时性和稳定性,系统可能需要进行压力测试和长期运行测试,以确保在各种驾驶条件下都能稳定工作。
2026-03-11 10:50:36 1.46MB linux
1
Linux操作系统在嵌入式和实时应用领域的广泛使用已经是不争的事实,尤其随着技术的进步和硬件成本的降低,嵌入式系统已经渗透到我们生活的方方面面。Linux for Embedded and Real-time Applications这本书籍便是一本专注于介绍如何将Linux操作系统应用于嵌入式和实时系统开发的指南。 书中提到了一个十分有趣的比喻:“如果你想要周游世界并受邀在许多不同的场合发表演说,只需要编写一个Unix操作系统。”这显然是在夸赞Unix系统及其衍生品Linux的强大生命力和应用范围。然后,作者开始解答什么是嵌入式系统。通常,当面对一位异性搭讪者,你可能会用俏皮的言辞回答你的工作是“尽可能少地做事”,但当对方好奇地询问你到底做什么工作时,你需要有一个吸引人的解释来说明嵌入式系统到底是什么。作者用了一个生动的例子说明嵌入式系统是“一种内部含有计算机的设备,但是设备的使用者并不一定知道,甚至不关心计算机的存在。它是隐藏的”。比如说,汽车中的引擎控制计算机就是这样的嵌入式系统。你驾驶汽车的方式并不会因为你所开的车是由计算机控制的引擎而有所不同。此外,汽车中还有控制防抱死刹车、何时部署安全气囊的计算机,以及许多其他计算机,它们负责在你早上开车时为你提供娱乐和信息。 作者继续解释,实际上,如今的典型汽车拥有的原始计算能力甚至超过了20世纪70年代的登月舱。而且,你的手机可能比登月舱拥有更多的计算能力。作者指出,世界上拥有比个人电脑(PCs)更多的嵌入式计算机。实际上,市场数据显示,个人电脑仅占每年微处理器芯片销售量的约2%。一个普通的家庭即使没有个人电脑,至少也拥有几十个嵌入式计算机。这就是为什么作者说,从编程的角度看,嵌入式系统与传统的“桌面”应用程序有着显著的区别。例如,大多数桌面应用程序处理的是一个相对可预测的输入/输出(I/O)设备集合——硬盘驱动器、图形显示、键盘等。 在嵌入式系统编程方面,系统通常必须具备实时处理的能力,这意味着系统的反应时间必须是可预测的,并且在规定的时间内能够可靠地响应外部事件。Linux操作系统通过其内核的实时扩展,能够为嵌入式开发者提供一个具备实时处理能力的平台。例如,PREEMPT_RT补丁为Linux内核带来了确定性的实时反应。此外,由于嵌入式系统往往拥有受限的硬件资源,所以Linux在嵌入式系统中的应用,还需要特别考虑系统的资源占用,包括内存和存储空间。这就要求开发者在设计系统时必须进行精心的资源管理。 嵌入式和实时应用的Linux系统开发人员必须面对的挑战之一是确定系统的性能参数,例如响应时间和系统稳定性。开发者需要根据应用需求精心设计和优化系统,确保关键任务能够在既定的时间内完成。这通常意味着对操作系统内核进行定制,以及对硬件资源进行精细管理。 此外,书中还可能涉及如何为特定的嵌入式硬件选择和配置Linux内核,如何进行驱动开发,以及如何编写高效的应用程序来满足特定的实时约束。它还可能探讨了Linux系统的一些高级特性,如进程调度、内存管理、设备驱动程序、文件系统的选择和配置,以及对于提高系统稳定性和响应时间至关重要的实时内核优化。 总结来说,这本书籍的内容非常丰富,是Linux嵌入式和实时系统开发者不可或缺的参考资料,它系统地讲解了嵌入式Linux的基础知识、系统设计和优化、以及在各种硬件平台上部署Linux系统时可能遇到的问题和解决方案。通过阅读和理解这些内容,读者可以加深对Linux在嵌入式和实时应用中使用情况的认识,并提高相关的开发能力。
2026-03-11 10:19:13 10.85MB Linux Embedded Real-time
1
物联网后台管理系统源码是开发和实现物联网应用的关键组成部分,它为设备管理、数据处理、用户交互等提供了核心支持。此压缩包"物联网后台管理系统源码.rar"可能包含了一系列的源代码文件,这些文件用于构建一个完整的物联网解决方案。下面将详细讨论物联网后台管理系统的重要组成部分和涉及的技术知识。 物联网(IoT)是指通过互联网连接物理世界中的各种设备和传感器,实现数据交换和智能控制。在物联网后台管理系统中,主要涉及以下几个关键技术领域: 1. 设备管理:系统需要能够识别、注册、监控和控制连接到网络的各种物联网设备。这通常涉及到设备驱动程序、API接口以及设备状态的实时更新。 2. 数据处理:物联网系统会产生大量数据,后台管理系统需要有效处理这些数据,包括数据清洗、存储、分析和可视化。这可能涉及到大数据技术,如Hadoop、Spark,以及数据库技术,如MySQL、MongoDB等。 3. 云平台:为了支持大规模的设备连接和数据处理,后台系统通常运行在云端,利用云计算资源。例如,可以使用AWS IoT Core、Google Cloud IoT或阿里云物联网平台。 4. 安全性:物联网
2026-03-11 09:50:58 84.05MB
1
ThingsBoard是一个开源的物联网平台,采用前后端分离架构。后端基于Java开发,使用Maven构建,启动步骤包括环境准备、编译打包、数据库配置与初始化以及服务启动。前端基于Angular框架,启动步骤包括注销UI模块、安装依赖和运行开发服务器。注意事项包括确保前后端通信的API配置正确,特别是跨域资源共享(CORS)设置,以及生产环境中的部署调整。最新版本和文档应作为首要参考,因为软件结构和启动流程可能随版本更新而变化。 物联网平台ThingsBoard以开源的方式提供服务,具有前后端分离的架构特点,这种架构可以使得前端和后端的开发与维护相互独立,有利于开发效率的提升和应用的快速迭代。后端部分主要是使用Java语言开发而成,通过Maven这一工具进行项目的构建工作,从而实现模块化构建,提高开发效率与项目管理的便捷性。 对于ThingsBoard平台的后端启动过程,主要包括几个关键步骤。首先是环境准备,这通常涉及到运行环境的搭建,比如安装Java开发环境和必要的数据库服务。其次是编译打包,开发者需要通过Maven来执行相应的命令,以将源代码编译成可执行的jar包或者war包。接下来是数据库的配置与初始化,这一步骤是为了确保后端服务可以正确地进行数据存储和管理。最后是服务的启动,通过运行相应的启动脚本或命令,后端服务就可以开始工作了。 至于前端部分,ThingsBoard采用的是Angular框架,Angular作为一款成熟的前端框架,它提供了丰富的功能以及优秀的开发体验,使得前端开发更加模块化和高效。在启动前端项目时,开发者需要先进行UI模块的注销,然后安装必要的依赖包,并最终运行开发服务器来启动项目。 特别需要注意的是,在整个启动过程中,前后端之间的通信API必须配置正确,这主要是为了解决前端应用和服务端交互过程中可能遇到的跨域资源共享问题,即CORS问题。确保这一问题得到妥善处理是实现前后端分离架构的关键。此外,在进行生产环境部署时,开发者还需要根据实际情况对部署方式进行调整和优化。 由于软件开发领域更新迭代非常快速,ThingsBoard作为一个活跃的开源项目,其软件结构和启动流程可能会根据最新版本的发布而有所变化。因此,在进行启动之前,开发者应该参考最新版本的文档,以获取最准确的信息和指导,从而避免可能遇到的障碍和问题。 软件包、源码、代码包是软件开发中频繁出现的概念,它们指的是软件项目中所有相关的源代码文件,通常被打包成一个文件方便传输和分发。开发者通过这些包可以获取到软件项目的全部代码,进行学习、研究或是进一步的开发工作。对于ThingsBoard这样的开源项目而言,其源码包的开放,不仅体现了开源共享的精神,也使得更多的开发者能够参与其中,共同推动项目的进步和发展。
2026-03-11 09:47:17 6KB 软件开发 源码
1
在工控领域中,PLC(可编程逻辑控制器)扮演着至关重要的角色。基恩士(Keyence)作为自动化行业内的佼佼者,其PLC产品广泛应用于各种工业控制系统中。KV8000系列是基恩士PLC中高性能的产品,而XH16EC则是该系列中的一种总线控制单元,专门设计用于扩展I/O接口和实现网络通信。ST(结构化文本)是一种高级编程语言,被广泛用于工业自动化和PLC编程中,它具有良好的可读性和模块化编程能力。 在当前提供的压缩包文件中,包含了有关KV8000+XH16EC总线控制的全ST程序实例以及项目源码框架的详细解析。这代表了文件内容的核心在于深入解读特定型号PLC的编程与应用,旨在为使用者提供一套完整的编程指南和参考模板。 文件中的“详细知识.docx”文档,应该提供了针对KV8000+XH16EC总线控制的理论知识、编程指南以及实际应用案例分析。文档可能详细描述了ST语言的语法结构、编程规范、程序调试方法和故障诊断技巧。此外,文档中可能还包含了使用KV8000+XH16EC进行特定自动化项目设计的案例,这些案例能够帮助工程师们更好地理解如何将理论应用于实践,解决实际问题。 附件中的“653275080520.pdf”则可能是基恩士公司的官方文档,为用户提供了关于KV8000+XH16EC的技术规格、性能参数和硬件接线图等详尽信息。此类官方文档对于深入理解产品特性、正确实施安装配置和优化系统性能具有不可替代的作用。 “ST编程”这个关键词暗示了压缩包里还可能包含有关ST语言编程的更广泛知识。这部分内容可能会覆盖ST编程的基本原则、数据类型、控制结构以及如何在PLC编程环境中实现功能块编程和模块化设计。文件可能会举例说明如何在KV8000+XH16EC环境下编写ST程序,包括对输入输出数据处理、定时器计数器使用、数据采集和处理等关键程序结构的实现方法。 此外,程序实例和源码框架的解析部分将为使用者展示如何将上述编程知识融入到实际项目中。这部分内容可能会详细解析项目源码的构成,如何将程序分解为不同的功能模块,以及如何组织这些模块以实现复杂的自动化逻辑。源码框架的详细解释对于学习如何构建可维护、可扩展的程序结构尤为重要。 在以上提供的文件中,用户能够获得从基础理论知识到高级应用实践的全方位资源,这不仅有助于提高编程技能,还能够加深对基恩士PLC产品的理解,从而在自动化项目中实现高效的设计和部署。用户通过研究这些资料,能够充分掌握KV8000+XH16EC总线控制系统的应用,并在实际工作中有效解决遇到的技术难题。
2026-03-11 08:59:39 168KB
1
很好用的pdf显示 编辑器 The smallest, fastest, most feature-rich FREE PDF editor/viewer available! Create, View, Edit, Annotate, OCR and Digitally Sign PDF files plus much more.. Editor Plus license includes ability to Create and Edit fillable forms Includes PDF-XChange Lite printer.
2026-03-10 23:43:40 202.67MB PDF-XChange. pdf crack edit
1