C# OpenHTMLtoPDF自定义页面大小
我正在尝试使用C# OpenHTMLtoPDF自定义页面大小,c#,openhtmltopdf,C#,Openhtmltopdf,我正在尝试使用OpenHTMLtoPDF设置自定义页面大小。我试图将HTML源代码转换为58mm x 110mm热敏纸打印作业,但是,我在这方面遇到了困难 我尝试过直接设置页面大小,如下所示: var pdf = Pdf.From(html).OfSize(58,110);//Invalid arguments 及 您定义的大小不正确 您需要做的是创建一个新的纸张大小,如下所示: OpenHtmlToPdf.PaperSize size = new OpenHtmlToPdf.PaperSi
OpenHTMLtoPDF
设置自定义页面大小。我试图将HTML源代码转换为58mm x 110mm热敏纸打印作业,但是,我在这方面遇到了困难
我尝试过直接设置页面大小,如下所示:
var pdf = Pdf.From(html).OfSize(58,110);//Invalid arguments
及
您定义的大小不正确 您需要做的是创建一个新的纸张大小,如下所示:
OpenHtmlToPdf.PaperSize size = new OpenHtmlToPdf.PaperSize(Length.Millimeters(58), Length.Millimeters(110));
然后,要将PDF文档设置为正确的纸张大小,您可以这样称呼它
var pdf = Pdf.From(html).OfSize(size);
旁注 如果您使用不同的测量单位,您可以定义您使用的测量单位,如下所示:
Length.Inches(MeasurementInInches);
Length.Centimeters(MeasurementInCentimeters);
我把这当作一个问答式的问题贴了出来,因为我被困在这个问题上一个小时了,找不到任何关于如何做到这一点的信息。在玩了一个小时后,我发现了它,并认为它值得分享。对于类似热敏打印纸,是否有可能使用固定宽度和动态高度?(将高度设置为最终html元素高度)。@qakmak我不知道。一个解决方案是根据要打印的行数粗略计算大小。我认为这不是一个好的解决方案,因为html中的单词可能会自动换行,因为我不知道行数……还有一个解决方案我可以想到。使用设定的纸张大小(100mm)进行测试,然后查看有多少页(假设测试中有4页),然后使用设定的大小和页数重新运行测试,这样您的页面高度将为400mm。嗯…,我可以设置页面高度,但我仍然需要检查最终生成的pdf文件页数。最后我使用pdfium的PdfReader,因为它是免费的。谢谢你给我提的好建议。
Length.Inches(MeasurementInInches);
Length.Centimeters(MeasurementInCentimeters);