java实现dwg转pdf

news2024/11/15 18:03:20

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、无奈选择第二种
  • 二、jar引入
    • 1.jar地址
    • 2.使用jar,完成dwg转为pdf
  • 总结


前言

由于公司需要最近研究一个cad文件需要在浏览器中展示,经过研究发现大致有两种方式:
1 将.dwg转换为 vds文件,就可以在web端展示
2 比较low,将dwg转为pdf然后在web端展示
3 将.dwg文件直接交给前端,前端通过h5等其他控件集成,实现展示


一、无奈选择第二种

由于第一种公司没有先例(没法复制粘贴),项目催得紧,就开始研究后端展示;也就是将dwg转换为pdf

二、jar引入

1.jar地址

网上有很多,但是都没用,最终在这个地址找到了库 aspose库

https://releases.aspose.com/java/repo/com/aspose/

在这里插入图片描述
可以说各种包都有了,算是全了,各种文档的格式转换,直接下载吧

2.使用jar,完成dwg转为pdf

由于jar直接引入pom无法使用,所以只能手动搞
1 引入pom

    <dependency>
            <groupId>com.aspose</groupId>
            <artifactId>aspose-cad</artifactId>
            <version>21.8</version>
        </dependency>

2 找到本地maven仓库,自建文件夹,并下载相应文件,粘贴到正确的仓库路径中
aspose-cad-21.8.jar
aspose-cad-21.8.pom
在这里插入图片描述
这样就完毕了,跟正常能下载的jar使用没有区别了
3 使用 亲测可以正常转成pdf

代码如下(示例):

import com.aspose.cad.Color;
import com.aspose.cad.Image;
import com.aspose.cad.imageoptions.CadRasterizationOptions;
import com.aspose.cad.imageoptions.PdfOptions;

public class DwgToPdf {

    public static void main(String[] args) {

        DWGFileToPDF("C:\\Users\\DELL\\Downloads\\dwg\\demo4.dwg", "C:\\Users\\DELL\\Downloads\\dwg\\demo4.pdf");

    }


    /**
     * @param srcFile 选择dwg文件路径
     * @param dataDir 保存文件路径
     */
    public static void DWGFileToPDF(String srcFile, String dataDir) {

        Image objImage = Image.load(srcFile);
        CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
        rasterizationOptions.setBackgroundColor(Color.getWhite());
        rasterizationOptions.setPageWidth(1600);
        rasterizationOptions.setPageHeight(1600);

        // Create an instance of PdfOptions
        PdfOptions pdfOptions = new PdfOptions();
        // Set the VectorRasterizationOptions property
        pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
        // Export the DWG to PDF
        objImage.save(dataDir, pdfOptions);
    }


}

但是!!! 里面一些特殊字符,搞不定 。
在这里插入图片描述


总结

不知道为啥,这个aspose的相关jar无法通过pom引入,就算仓库源中加入了它也不行,只能如此手动搞;
虽然转成了pdf,但是里面内容不完美~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JVM-围观如何打破双亲委派机制

下面手把手用代码来实现打破JVM的双亲委派机制一、Tomcat打破双亲委派机制以Tomcat类加载为例&#xff0c;Tomcat作为web容器&#xff0c; 那么它要解决什么问题呢&#xff1f;Tomcat 如果使用默认的双亲委派类加载机制行不行&#xff1f;1.1 Tomcat作为web容器&#xff0c; 那…

科技云报道:CES 2023:自动驾驶、元宇宙备受瞩目

科技云报道原创。 在被疫情扰乱了两年之后&#xff0c;2023年CES终于回归正常了。 1月5日-8日&#xff0c;CES 2023在拉斯维加斯举行。作为当前全球规模最大、影响力最广泛的消费类电子技术年展&#xff0c;本届展会涵盖的重要主题包括可持续性、数字健康、Web3与元宇宙以及人…

教你如何快速使用店铺管理系统

一、客户管理1、客户资料客户资料报表展示所有新客的数据信息&#xff0c;在此报表可进行会员开卡及新增客户操作&#xff1b;提交会员开卡表单之后&#xff0c;由数据助手更新该客户的会员卡信息至客户信息表单&#xff1b;点击新增客户弹出客户信息表单&#xff0c;默认客户分…

python自学之《21天学通Python》(8)

第11章 文件与文件系统 编写程序来解决实际项目时&#xff0c;很多时候都离不开文件和文件系统的操作。程序本身就是保存在文件系统的文件中的。文件既可以保存程序代码&#xff0c;也可以用来保存各种输入与输出数据。文件和文件系统的处理是任何高级程序设计语言必不可少的一…

Node.js教程笔记(一)

学习目标 1、初识Nodejs 2、fs文件系统模块 3、path路径模块 4、http模块 一、初识Node.js 1.1 浏览器中的JavaScript的运行环境 1、浏览器中的JavaScript的组成部分 2、为什么JavaScript可以在浏览器中被执行&#xff1f; 3、为什么JavaScript可以操作Dom和Bom&#xff…

智公网:公务员的专业限制有哪些?

公务员报考的要求越来越高了&#xff0c;尤其是限制专业这一块&#xff0c;直接阻断了很多人想要跨专业的想法。但是没有办法专业这个条件是硬性的&#xff0c;所以在报考之前一定要看清报考要求。 公务员性质也是比较特殊的&#xff0c;像是一些比较热门专业&#xff0c;在公…

线程安全☞原子性

何为原子性? 原子性&#xff1a;一条线程在执行一系列程序指令操作时&#xff0c;该线程不可中断。一旦出现中断&#xff0c;那么就可能会导致程序执行前后的结果不一致。与数据库中的原子性&#xff08;事务管理体现&#xff09;是相同的 概括&#xff1a;一段程序只能由一条…

Go语言设计与实现 -- 浅谈垃圾回收机制

概述 GC就是垃圾回收机制。而我们知道&#xff0c;内存区域是分成几个块儿的&#xff0c;例如&#xff1a; 堆区&#xff1a;为对象分配内存空间&#xff0c;在栈区和bss区之间存放函数参数&#xff0c;返回值&#xff0c;局部变量全局区&#xff1a;常量区&#xff08;const…

第一批“阳康”涌向三亚,最大的赢家或是携程

在2022年接近尾声时&#xff0c;给居民出行带来近三年困扰的疫情防控&#xff0c;终于迎来了好消息。随着国家“新十条”防控新政策的出台以及优化&#xff0c;过去出门不便、频繁查验核酸码的时代一去不返。尤其是各地逐步放宽出入境管控政策后&#xff0c;在线旅游行业也迎来…

PMP的价值有哪些?

我个人认为&#xff0c;考证只有两个出发点是正确的。一是为了提升自己或者满足自己的兴趣&#xff0c;另一个是和自己的职业规划相关。 比如&#xff0c;有同学想提升自己英语能力&#xff0c;可以考四六级&#xff0c;或者更厉害一点的考雅思、托福。比如&#xff0c;有的同…

电脑自动关机是什么原因?4个解决方法,赶紧码住收藏!

正在使用电脑&#xff0c;突然自动关机。如果没有及时保存好资料&#xff0c;我们辛辛苦苦写的资料就会付诸东流。电脑自动关机是什么原因&#xff1f;其实主要是以下这4个方面的原因。你可以根据下面不同的原因来对症下药&#xff0c;寻找解决电脑自动关机的最好方法&#xff…

直播弹幕系统(七)- 利用动态创建队列完成直播间独立聊天

直播弹幕系统&#xff08;七&#xff09;- 利用动态创建队列完成直播间独立聊天前言一. 动态创建队列1.1 测试 - 动态创建队列1.2 测试 - 聊天室独立前言 上一篇 SpringBoot STOMP RabbitMQ&#xff08;使用MQ替代Spring代理&#xff09; 中主要讲解了如何整合STOMP以及Rabb…

Vue条件语句中v-if、v-else、v-else-if的用法

文章目录1、v-if和v-else结合使用1.1 出现的错误2、v-if、v-else-if和v-else的联合使用2.1 出现的错误3、如果想要同时切换多个元素3.1 效果展示1、v-if和v-else结合使用 v-else 元素必须紧跟在带 v-if 或者 v-else-if 的元素的后面&#xff0c;否则它将不会被识别。 <span…

智能指针(二) shared_ptr 注意点

智能指针(二) shared_ptr 注意点 1 不存在 int * 到 shared_ptr 的隐式类型转换 void proc(shared_ptr<int> ptr) {cout << "ptr.use_count()" << ptr.use_count() << endl;cout << "调用成功" << endl;return; }in…

独立产品灵感周刊 DecoHack #043 - 互联网从业者的灵感数据库

本周刊记录有趣好玩的独立产品设计开发相关内容&#xff0c;每周发布&#xff0c;往期内容同样精彩&#xff0c;感兴趣的伙伴可以点击订阅我的周刊。为保证每期都能收到&#xff0c;建议邮件订阅。欢迎通过 Twitter 私信推荐或投稿。很完美的断更了2期&#xff0c;有一期是因为…

RFID技术和NFC技术的原理及区别,你都了解吗?

物联网是信息技术发展的重要推动力&#xff0c;推动了农业、工业、制造业、服务业等多个行业的发展&#xff0c;物联网主要由三个关键技术组成&#xff0c;即连接、物体标识和数据传输&#xff0c;人们把RFID技术作为物体标识的代表&#xff0c;随着技术的进步起源于RFID技术的…

谷粒商城-基础篇-Day07-品牌分类关联与级联更新

将品牌分类和品牌名称的关系放在pms_category_brand_relation表中 获取该列表品牌所有的关联信息 /*** 列表*/GetMapping("/catelog/list")public R list(RequestParam("brandId") Long brandId){List<CategoryBrandRelationEntity> datacategoryBra…

Java日期时间类

Java日期时间类Datenew Date()**获取当前系统时间**通过**指定毫秒数得到时间**format**指定日期格式**SimpleDateFormat的模式字母&#xff1a;parse()可以把**格式化的String转成对应Date**Calendar&#xff08;日历&#xff09;创建日期类对象获取日历对象的某个日历字段第三…

【Linux】五、Linux 进程控制(总)|进程创建|进程终止|进程等待进程程序替换|模拟shell

目录 一、进程创建 1.1 再谈 fork 函数 1.2 fork 函数返回值问题 1.2 写时拷贝 1.3 fork 常规用法 1.4 fork调用失败的原因 二、进程终止 2.1 进程退出码 2.2 进程退出场景 2.3 进程如何退出 三、进程等待 3.1 进程等待必要性 3.2 进程等待的方法 3.2.1 通过 wai…

【二进制安全面试题】linux篇:保护机制、函数调用约定

前言 上来先道歉&#xff0c;对不起(&#xff1e;人&#xff1c;&#xff1b;)对不起&#xff0c;博客鸽了好久。私下有好多朋友问我毕业工作的事情&#xff0c;毕竟搞二进制最重要的是要有热情&#xff01;我能做的也是有限&#xff0c;每个人的学习方式不完全相同&#xff0c…