【问题标题】:OpenHTMLtoPDF Custom Page SizeOpenHTMLtoPDF 自定义页面大小
【发布时间】:2019-01-11 21:15:14
【问题描述】:

我正在尝试使用OpenHTMLtoPDF 设置自定义页面大小。我正在尝试将 HTML 源转换为 58mm x 110mm 热敏纸打印作业,但是,我被困在了这个问题上。

我尝试过像这样直接设置页面大小:

var pdf = Pdf.From(html).OfSize(58,110);//Invalid arguments 

和

var pdf = Pdf.From(html).OfSize(new PaperSize(58,110));//Invalid arguments

【问题讨论】:

  • 我将此作为问答式问题发布,因为我在这个问题上停留了一个小时,但找不到任何有关如何执行此操作的信息。玩了一个小时后,我想通了,觉得值得分享。

标签: c# openhtmltopdf


【解决方案1】:

您定义的尺寸不正确。

您需要做的是创建一个新的纸张尺寸,如下所示:

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 中的单词可能会自动换行,因为我不知道行数....跨度>
  • 我还能想到另一种解决方案。使用设定的纸张尺寸(100 毫米)进行测试,然后查看它有多少页(假设测试中有 4 页),然后使用设定的尺寸和页数重新运行它,这样您就会有 400 毫米的页面高度。
  • 嗯...,我可以设置页面的高度,但我仍然需要检查最终生成的pdf文件页数。最后我使用 pdfium 的 PdfReader,因为它是免费的。谢谢你给我好的建议。
猜你喜欢
  • 2011-04-26
  • 1970-01-01
  • 1970-01-01
  • 2020-02-28
  • 2015-02-27
  • 2011-12-14
  • 2021-01-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多