我是Web开发的新手,我必须做一个可以提取为PDF(即发票,收据)的页面。
我已经尝试过JSPdf,但它似乎只能输出纯文本。 我不能使用HTML2Canvas,因为它会输出图像而不是文本(无法从图像中搜索/复制文本)
我环顾四周,并按照此处的建议尝试了HTML渲染器:Convert HTML to PDF in .NET
应用NuGet包和给定的示例方法后,它只会刷新页面,并且不会生成PDF文件。 我试图将pdf.Save(ms)更改为pdf.Save(“ test.pdf”),但出现错误:System.UnauthorizedAccessException:'访问路径'C:\ Program Files(x86)... \ test.pdf'被拒绝。'
我一直在寻找,它循环回到相同的问题/建议,但我不知道还需要做些什么才能使其起作用。
这是我用于测试的HTML:
<form id="form1" runat="server">
<section class="content">
<div class="row col-xs-12">
<div class="box" id="wholebox">
<div class="box-body" id="inputbox">
<div class="form-group input-group-sm col-sm-8">
<label for="Comp_Name">Company Name</label>
<Input type="text" class="form-control" name="CompName" id="Comp_Name" value="Company 1" disabled />
</div>
<div class="form-group input-group-sm col-sm-8">
<label for="BUnit_Name">Business Unit</label>
<Input type="text" class="form-control" name="BUnitName" id="BUnit_Name" value="Unit 1" disabled />
</div>
<div class="form-group input-group-sm col-sm-8">
<label for="BUnit_Adr">Address</label>
<Input type="text" class="form-control" name="BUnitAdr" id="BUnit_Adr" value="Address 1" disabled />
</div>
</div>
<div class="box-footer">
<div class="col-sm-2">
<button onclick="<%PdfSharpConvert(Request.Url.ToString()); %>">pdfsharp</button>
</div>
</div>
</div>
</div>
</section>
</form>
这是C#中的后端代码:
public partial class Test2 : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e)
{
}
public static Byte[] PdfSharpConvert(String html)
{
Byte[] res = null;
using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
{
var pdf = TheArtOfDev.HtmlRenderer.PdfSharp.PdfGenerator.GeneratePdf(html, PdfSharp.PageSize.A4);
pdf.Save(ms);
res = ms.ToArray();
}
return res;
}}