0

我正在尝试从 HTML 字符串创建 PDF 文件,基本上 HTML 是一个包含几列的表。问题是当我生成 PDF 文件时,我无法看到所有列。

我尝试了几种选择,但到目前为止没有运气:

var generator = new NReco.PdfGenerator.HtmlToPdfConverter();
generator.CustomWkHtmlPageArgs = "--enable-smart-shrinking";
generator.CustomWkHtmlArgs = "--page-width value";
generator.PageWidth = Value;

此外,所有 HTML 元素(如 body 和 table)的 width=100%

如何使 HTML 适合一页?

这是 HTML:

<!doctype html>
<html lang="en">
   <body >            
   <table border="1" width="100%">
      <tr>
         <th >Heat Id</th>
         <th >Heat Order Id</th>
         <th >MSP</th>
         <th >Grade</th>
         <th >Recipe</th>
         <th >Shift</th>
         <th >Crew</th>
         <th >Start Date</th>
         <th >End Date</th>
         <th >Tap Date</th>
         <th >Tap Wt. (Tons)</th>
         <th >Scale Tap Wt. (Tons)</th>
         <th >Cast Heat Wt.</th>
         <th >Cast Slab Wt.</th>
         <th >Charge Wt. (Tons)</th>
         <th >Pseudo 1 Bucket</th>
         <th >Scrap Wt. (Tons)</th>
         <th >Scrap Flux Wt. (Tons)</th>
         <th >Alloys Wt. (Lbs)</th>
         <th >Tap Flux Wt. (Lbs)</th>
         <th >MWH</th>
         <th >Avg MW</th>
         <th >KWH / Charge Ton</th>
         <th >Tap To Tap Time A & B Furnace (min)</th>
         <th >Tap To Tap Time Single Furnace (min)</th>
         <th >Power On Time (min)</th>
         <th >Power On %</th>
         <th >Delay Time (min)</th>
         <th >Tons / Hr</th>
         <th >Total O2</th>
         <th >Total O2 SS</th>
         <th >Total Gas</th>
         <th >Total C</th>
         <th >Tap Temp</th>
         <th >Tap C</th>
         <th >Tap O2</th>
         <th >Ladle ID</th>
         <th >Comments</th>
         <th >Auto Preheat On Time (min)</th>
         <th >Auto Preheat Energy (MWH)</th>
         <th >Heating/Lancing Energy (MWH)</th>
      </tr>                  
   </table>               
   </body>
</html>
4

2 回答 2

2

我最终结合了方向、缩放和页面大小:

generator.Orientation = NReco.PdfGenerator.PageOrientation.Landscape
generator.Zoom = 0.55f;
generator.Size = NReco.PdfGenerator.PageSize.A3;

这样,我就能够显示所有列。

于 2017-06-28T17:01:02.717 回答
0

在大多数情况下,您无法看到所有列,因为对于指定宽度(以毫米为单位)和默认 DPI,您的表格需要的空间比 PDF 页面上的可用空间多。对于 A4 大小,请尝试在 Web 浏览器中打开您的 HTML 模板,将其窗口的宽度调整为大约 800-900 像素,然后查看页面布局发生了什么。

顺便说一句,以下代码行设置了相同的 wkhtmltopdf 选项:

generator.CustomWkHtmlArgs = "--page-width value";
generator.PageWidth = Value;
于 2017-06-24T06:49:57.170 回答