利用System.Uri转URL为绝对地址

本文介绍了如何使用ASPOSE.Word库通过InsertHtml方法将图文信息(图片内嵌)写入Word文档。重点在于对HTML进行转化,确保HTML中图片的src为绝对全路径。通过使用System.Uri对路径进行替换,实现图片资源的正确加载。示例代码展示了URI路径的转换过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用ASPOSE.Word生成Word文档时可以通过InsertHtml(html)来将图文信息写入Word文档(图片内嵌),但要求html里图片的src是绝对全路径,所以需要对html进行转化。

 

获取html可以来自数据库数据或者通过网络抓取,得到之后使用System.Uri来进行替换即可。

 

示例:

Uri uri = new Uri(http://www.baidu.com);

Uri uri2 = new Uri(uri,"abc/123.html");

Console.WriteLine(uri2.ToString()); //输出http://www.baidu.com/abc/123.html

### Java 中 `java.lang.IllegalArgumentException: URI is not hierarchical` 的解决方案 当遇到 `java.lang.IllegalArgumentException: URI is not hierarchical` 错误时,通常是因为尝试通过不支持的操作来处理特定类型的 URI。对于这种情况,有几种常见原因和相应的解决办法。 #### 原因分析 1. **路径解析问题** 尝试创建文件对象时使用的字符串可能无法被解释为有效的分层 URI。这可能是由于路径格式不对或是因为程序试图在一个不允许的地方操作文件系统[^4]。 2. **资源加载方式不当** 如果是在读取位于 JAR 文件内部的资源,则不应使用 `File` 类来进行访问,而是应该采用适合于类路径资源的方式获取输入流[^2]。 3. **HTTP请求配置失误** 对于某些框架如 Spring Boot,在设置外部服务调用 URL 时如果指定了相对路径而非完整的绝对路径也可能引发此类异常[^5]。 #### 解决方案建议 ##### 方法一:修正本地文件系统的路径表达形式 确保所提供的路径能够形成合法的分层结构,并且确实指向存在的位置: ```java import java.io.File; public class Main { public static void main(String[] args){ String path = "/absolute/path/to/your/resource"; // 使用绝对路径代替相对路径 File file = new File(path); System.out.println(file.exists()); } } ``` ##### 方法二:正确加载 ClassPath 下的资源 针对被打包进 JAR 文件内的资源,推荐利用 `ClassLoader.getResourceAsStream()` 或者其他类似的 API 来替代直接实例化 `File` 对象的做法: ```java InputStream inputStream = getClass().getClassLoader() .getResourceAsStream("template/LZGICAD1.mdb"); if (inputStream != null) { try { // 处理 InputStream... } finally { inputStream.close(); } } else { throw new RuntimeException("Resource not found!"); } ``` ##### 方法三:调整 HTTP 请求中的 URL 设置 确认所有的远程接口调用都提供了完整的、包含协议部分(比如 http:// 或 https://)在内的全限定域名作为目标地址。 #### 注意事项 - 当应用程序被打包并部署到不同环境中测试或生产环境时,务必验证所有涉及文件 I/O 和网络通信的部分是否仍然正常工作。 - 需要特别注意区分开发阶段与实际运行环境下资源配置的不同之处,尤其是在构建工具自动管理依赖关系的情况下更应如此。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hello World,

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值