如何使用基础网址和资源编码

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF是一个用于在.NET项目中生成PDF文档的有用工具。

这个库的一个常见用途是“HTML 转 PDF”渲染——使用 HTML 作为渲染 PDF 文档的设计语言。 一个合理的问题是:我们如何在HTML转PDF转换中使用CSS样式表和图像文件?


适用于PDF的C# NuGet库

安装使用 NuGet

Install-Package IronPdf
Java PDF JAR

下载 DLL

下载DLL

手动安装到你的项目中

适用于PDF的C# NuGet库

安装使用 NuGet

Install-Package IronPdf
Java PDF JAR

下载 DLL

下载DLL

手动安装到你的项目中

开始在您的项目中使用IronPDF,并立即获取免费试用。

第一步:
green arrow pointer

查看 IronPDFNuget 用于快速安装和部署。它有超过800万次下载,正在使用C#改变PDF。

适用于PDF的C# NuGet库 nuget.org/packages/IronPdf/
Install-Package IronPdf

考虑安装 IronPDF DLL 直接。下载并手动安装到您的项目或GAC表单中: IronPdf.zip

手动安装到你的项目中

下载DLL
## 使用带有图片和CSS资源的HTML字符串渲染PDF 在将HTML字符串转换为PDF时,设置**BaseUrlOrPath**参数以包含CSS、JavaScript文件和图像等资产是非常重要的。 BaseUrlOrPath指定了将相对于其加载所有资产的基本URL。 这可以是以“http”开头的网页URL,用于加载远程资产,或者是本地文件路径,用于访问磁盘上的资产。 正确设置 BaseUrlOrPath 可确保在转换过程中正确加载资产。 ```cs :path=/static-assets/pdf/content-code-examples/how-to/base-urls-baseurl.cs ``` ### MVC 应用程序 在MVC应用程序中,指定图像的文件路径可能会有挑战性。 为确保图像能被 IronPDF 找到并在网站上正确显示,需要正确配置 IronPDF 的 **baseUrl** 和 HTML 字符串上的 **src=""** 属性。 如下所示的文件层级设置 - baseUrlOrPath 设置为 @"wwwroot/image" - src属性为"../image/Sample.jpg" ```txt wwwroot └── image ├── Sample.jpg └── Sample.png ``` **例如:** ```cs :path=/static-assets/pdf/content-code-examples/how-to/base-mvc.cs ``` ```html ```
在继续之前
#### 不适用的文件路径格式 以下格式在 Chrome 浏览器上查看时效果良好,但在 MVC 应用程序中使用时指向错误的文件夹目录。如果在 RenderHtmlAsPdf 方法中提供了 baseUrlOrPath,这些格式仍然可以与 IronPDF 一起使用: ```html ``` 另一方面,这些格式在 MVC 应用程序中运行良好,但在文件路径方面,这些格式在 IronPDF 中运行不佳: ```html ```
## HTML标题和页脚中的图片和资源 当我们将HTML头部和尾部渲染到新的或现有的PDF中时,它们被视为独立的HTML文档,不会继承PDF本身的BaseURL。 我们应该设置一个BaseURL,用于加载资源: ```cs :path=/static-assets/pdf/content-code-examples/how-to/base-header-footer.cs ``` ## 将HTML文件转换为包含CSS、JS和图像资源的PDF 在将HTML文件渲染为PDF时,所有资源都将被假定为该文件的本地资源。 ```cs :path=/static-assets/pdf/content-code-examples/how-to/base-html-file.cs ``` 在上述示例中,所有的JS、CSS和图像文件将从磁盘上的C:\\Assets文件夹加载——与HTML文件位于同一目录。 为方便起见,您可以使用[ChromePdfRenderOptions.CustomCssUrl](/object-reference/api/IronPdf.ChromePdfRenderOptions.html#IronPdf_ChromePdfRenderOptions_CustomCssUrl)如果您需要,还可以指定一个仅用于 .NET PDF 渲染的附加样式表。例如 ```cs :path=/static-assets/pdf/content-code-examples/how-to/base-html-file-baseurl.cs ```
请注意
ChromePdfRenderOptions.CustomCssUrl 属性目前仅在使用 RenderHtmlAsPdf 方法将 HTML 字符串渲染为 PDF 文档时有效。
## 图像资产编码 图像资源可以直接编码到HTML文件或字符串中,这有助于避免找不到图像的一些令人沮丧的问题。 为此,我们可以利用 base64 的使用: 1. 首先通过读取图像文件或通过网络请求接收图像,获取图像的二进制数据。 2. 在 Microsoft .NET 中使用 `Convert.ToBase64String` 方法将二进制数据转换为 base64。 3. 在HTML中使用“data:image/svg+xml;base64,”来构建图像标签,然后加上base64数据。 您可能已经注意到,在base64数据之前已指定了图像类型。 访问[MDN 网络文档](https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Image_types)了解更多图像格式类型的信息。 ```cs :path=/static-assets/pdf/content-code-examples/how-to/add-images-to-pdfs-base64-image.cs ```