gpt4 book ai didi

c# - Blazor 页面将 HTML 生成为 PDF

转载 作者:行者123 更新时间:2023-12-03 22:30:02 25 4
gpt4 key购买 nike

我想打印一个渲染的模态,它打开了一些车辆信息,该按钮出现在模态上,点击应该将模态 HTML 转换为 PDF。

请告知是否有 C# 函数或我可以使用的函数,它将提取我想要转换为 PDF 的当前 HTML,或者引导我朝着正确的方向前进。我只做 C# 大约 2 个月,所以缺乏经验和专业知识。

编辑:还试图让代码在转储 PDF 时使用 CSS。

我添加了以下代码。

添加了引用文献等。

@using BidWheels.Configuration;
@using BidWheels.Shared.Controls;
@using BidWheels.Data;
@using BidWheels.CustomProviders;
@using BidWheels.Services;
@using System.Timers;
@using Syncfusion.Pdf;
@using Syncfusion.HtmlConverter;
@using System.Linq;
@using System.Web;
@using Microsoft.AspNetCore.Http;

@inject AppState AppState;
@inject UsersDAL UsersDAL;
@inject MainDAL MainDAL;
@inject NotificationService NotificationService;
@inject GeneralConfiguration GeneralConfiguration;
@inject GlobalVar GlobalVar;
@inject GlobalVarShared GlobalVarShared;
@inject Microsoft.JSInterop.IJSRuntime JS
@inject IHttpContextAccessor httpContextAccessor

用于执行生成 PDF 的函数的按钮
        </div>
<button class="btn btn-outline-success" @onclick="@CreatePDF">Generate PDF</button>
</div>

这是按钮调用的函数。
@functions {

void CreatePDF()
{

> //Initialize HTML to PDF converter
> //HtmlToPdfConverter htmlConverter = new HtmlToPdfConverter(HtmlRenderingEngine.WebKit);
> //WebKitConverterSettings settings = new WebKitConverterSettings();
> //Set WebKit path
> //settings.WebKitPath = Server.MapPath("~/QtBinaries");
> //Assign WebKit settings to HTML converter
> //htmlConverter.ConverterSettings = settings;
> //Get the current URL
> //string url = HttpContext;
> //Convert URL to PDF
> //PdfDocument document = htmlConverter.Convert(url);
> //Save the document
> //document.Save("Sample.pdf", HttpContext.Current.Response, HttpReadType.Save);

Code updated to below
HtmlToPdfConverter htmlConverter = new HtmlToPdfConverter();
WebKitConverterSettings webKitSettings = new WebKitConverterSettings();
webKitSettings.WebKitPath = Directory.GetCurrentDirectory() + "\\wwwroot" + @"\QtBinariesWindows\";
webKitSettings.MediaType = MediaType.Print;
webKitSettings.Orientation = PdfPageOrientation.Portrait;
htmlConverter.ConverterSettings = webKitSettings;
Convert HTML to PDF.
string baseUrl = @"" + Directory.GetCurrentDirectory() + "/wwwroot/css/";
string HTMLBody = await JS.InvokeAsync<string>("getHTMLtoRender", PDFBody);
PdfDocument pdfDocument = htmlConverter.Convert(HTMLBody, baseUrl);
MemoryStream memoryStream = new MemoryStream();
Save and close the document instance.
pdfDocument.Save(memoryStream);
JS.SaveAs("Sample.pdf", memoryStream.ToArray());

}

}

正在生成以下错误。

上述代码生成的错误消息:

Error messages generated by the code for the above

生成的新错误和库:

New errors generated and lib

最佳答案

我总是发现程序化 PDF 处理非常困难。
如果你真的需要一种编程方式,看看这个:Convert HTML to PDF in .NET .
否则,我建议您使用带有打印到 pdf 工具的浏览器打印功能,其中至少一个通常已经安装在我看到的每个系统上。

关于c# - Blazor 页面将 HTML 生成为 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60548144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com