首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将html导出为pdf横向模式

ASP.NET Core 应用程序中,将 HTML 导出为 PDF 并设置为横向模式,可以使用一些第三方库,如 DinkToPdf 或 PuppeteerSharp。以下是使用 DinkToPdf 库的示例,展示了如何将 HTML 导出为横向模式的 PDF。

1. 安装 DinkToPdf

首先,安装 DinkToPdf 库。你可以使用 NuGet 包管理器来安装:

代码语言:javascript
复制
dotnet add package DinkToPdf
dotnet add package DinkToPdf.Document

2. 配置 DinkToPdf

Startup.cs 文件中配置 DinkToPdf:

代码语言:javascript
复制
public void ConfigureServices(IServiceCollection services)
{
    services.AddControllersWithViews();

    // 注册 DinkToPdf 服务
    services.AddSingleton(typeof(DinkToPdf.Contracts.IConverter), new SynchronizedConverter(new PdfTools()));
}

3. 创建 PDF 导出服务

创建一个服务来处理 HTML 到 PDF 的转换:

代码语言:javascript
复制
using DinkToPdf;
using DinkToPdf.Contracts;
using System.IO;

public class PdfService
{
    private readonly IConverter _converter;

    public PdfService(IConverter converter)
    {
        _converter = converter;
    }

    public byte[] ConvertHtmlToPdf(string htmlContent)
    {
        var doc = new HtmlToPdfDocument()
        {
            GlobalSettings = {
                Orientation = Orientation.Landscape, // 设置为横向模式
                PaperSize = PaperKind.A4, // 设置纸张大小
            },
            Objects = {
                new ObjectSettings() {
                    HtmlContent = htmlContent,
                    WebSettings = { DefaultEncoding = "utf-8" }
                }
            }
        };

        return _converter.Convert(doc);
    }
}

4. 使用 PDF 服务

在控制器中使用这个服务来生成 PDF:

代码语言:javascript
复制
using Microsoft.AspNetCore.Mvc;

public class HomeController : Controller
{
    private readonly PdfService _pdfService;

    public HomeController(PdfService pdfService)
    {
        _pdfService = pdfService;
    }

    public IActionResult ExportToPdf()
    {
        string htmlContent = "<html><body><h1>Hello, PDF!</h1></body></html>";
        byte[] pdfBytes = _pdfService.ConvertHtmlToPdf(htmlContent);

        return File(pdfBytes, "application/pdf", "example.pdf");
    }
}

5. 注册 PDF 服务

确保在 Startup.cs 中注册 PdfService

代码语言:javascript
复制
public void ConfigureServices(IServiceCollection services)
{
    services.AddControllersWithViews();

    // 注册 DinkToPdf 服务
    services.AddSingleton(typeof(DinkToPdf.Contracts.IConverter), new SynchronizedConverter(new PdfTools()));

    // 注册 PdfService
    services.AddTransient<PdfService>();
}

6. 测试

启动你的应用程序,并访问 /Home/ExportToPdf。你应该会看到一个生成的 PDF 文件,并且它是横向模式的。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券