gpt4 book ai didi

javascript - Kendo UI Drawing API 导出 PDF 过早拆分 html 表格,在页面上生成无用的空白空间

转载 作者:行者123 更新时间:2023-11-30 00:04:45 24 4
gpt4 key购买 nike

我正在使用 Kendo UI Drawing API 将一个简单的 html 表格导出为 PDF。

由于默认字体大小很大,我根据官方 Kendo UI 文档(可在 kendoui.io/kendo-ui/framework/drawing/drawing-dom#customizing-the-looks).

问题是减小字体大小会导出我的表格以错误的高度拆分,导致不必要的空白,如您在此处看到的:

你们知道为什么会这样吗?我已经尝试过:

  1. 不同的边距大小
  2. 不同的 forcePageBreak 值
  3. 不同的纸张尺寸(尽管我需要使用 A4 尺寸)

感谢您的关注。我希望你能帮助我解决这个问题。

我已经包含了一个非常基本的 JS、CSS 和 HTML 片段,以防您需要查看它:

	function getPDF(selector, nro, dateC) {	
kendo.drawing.drawDOM(
$(selector),
{
forcePageBreak: "-",
paperSize: "A4",
margin: "0cm",
multiPage: true
}).then(function(group) {
//Render the result as a PDF file
return kendo.drawing.exportPDF(group);
}).done(function(data) {
//Save the PDF file
kendo.saveAs({
dataURI: data,
fileName: "filename.pdf"
});
});
}
	  .k-pdf-export *{
font-size: 6pt;
font-family:Arial, sans-serif;
}
.k-pdf-export h5 {
border: none;
padding-bottom: 0px;
font-weight:bold;
margin-bottom:5px;
}
.k-pdf-export .configuration-summary .quote-total td{
font-weight:bold;
}
.k-pdf-export strong{
width:100px;
}
<body>
<div class="wrapper">
<header class="main-header">
<section class="header"></section>
<section class="main-menu">
<div class="container" id="navmenu">
<ul class="main-nav"></ul>
</div>
</section>
</header>
<div class="content-wrapper">
<div class="container">
<section class="content">
<div class="container">
<section class="content">
<div class="form-horizontal">
<div class="section-heading">
<h3>Title</h3>
</div>
<div id="printable" class="row service-configuration configuration-summary service-quote">
<div class="col-sm-12 main-column">
<div class="white-space overf">
<div class="quote-header">
<hr class="blankspace-10">
<div class="row">
<div class="col-sm-6 billing-information">
<h5>Information</h5>
<p>
<strong>Sit dolor</strong> <i>Lorem Ipsum</i>
<br>
<strong>Sit dolor</strong> <i>Lorem Ipsum</i>
<br>
<strong>Sit dolor</strong> <i>Lorem Ipsum</i>
<br>

<strong>Sit dolor</strong> <i>Lorem Ipsum</i>
</p>
</div>
<div class="col-sm-6 order-information">
<h5>Details</h5>
<p>
<strong>Sit dolor</strong>Lorem Ipsum
<br>
<strong>Sit dolor</strong>Lorem Ipsum
<br>
<strong>Sit dolor</strong>Lorem Ipsum
<br> <strong>Sit dolor</strong>Lorem Ipsum
<br>
</p>
</div>
</div>
<hr class="blankspace-40">
<h5 class="quote-details-title">Table</h5>
<div class="table loosetext">
<table>
<thead class="forcenowrap">
<tr>
<th>Field</th>
<th>Field 2</th>
<th class="qty">Field 3</th>
<th class="price">Field 4</th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="4" class="addon-category">Suspendisse sed ex tristique</td>
</tr>
<tr>
<td class="sku">Suspendisse sed ex tristique
</td>
<td>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vitae sagittis odio, eget malesuada neque.
</td>
<td class="qty">1</td>
<td class="price"><span class="price">494.00</span>
</td>
</tr>
<tr>
<td colspan="4" class="addon-category">Suspendisse sed ex tristique</td>
</tr>
<tr>
<td class="sku">Suspendisse sed ex tristique
</td>
<td>Consectetur adipiscing elit. Sed vitae sagittis.
</td>
<td class="qty">1</td>
<td class="price"><span class="price">25.25</span>
</td>
</tr>
<tr>
<td class="sku">Suspendisse sed ex tristique
</td>
<td>Consectetur adipiscing elit. Sed vitae sagittis.
</td>
<td class="qty">1</td>
<td class="price"><span class="price">125.88</span>
</td>
</tr>
<tr>
<td class="sku">Suspendisse sed ex tristique
</td>
<td>Consectetur adipiscing elit. Sed vitae sagittis.
</td>
<td class="qty">1</td>
<td class="price"><span class="price">297.88</span>
</td>
</tr>
<tr>
<td class="sku">Suspendisse sed ex tristique</td>
<td>Consectetur adipiscing elit. Sed vitae sagittis. </td>
<td class="qty">1</td>
<td class="price"><span class="price">563.73</span>
</td>
</tr>
<tr>
<td class="sku">Suspendisse sed ex tristique
</td>
<td>Consectetur adipiscing elit. Sed vitae sagittis.
</td>
<td class="qty">1</td>
<td class="price"><span class="price">238.36</span>
</td>
</tr>
<tr>
<td class="sku">Suspendisse sed ex tristique
</td>
<td>Consectetur adipiscing elit. Sed vitae sagittis.
</td>
<td class="qty">1</td>
<td class="price"><span class="price">63.32</span>
</td>
</tr>
<tr>
<td class="sku">Suspendisse sed ex tristique</td>
<td>Consectetur adipiscing elit. Sed vitae sagittis.
</td>
<td class="qty">1</td>
<td class="price"><span class="price">1,013.56</span>
</td>
</tr>
</tbody>
<tfoot class="quote-total">
<tr>
<td></td>
<td colspan="3">Value <span class="price">999.99</span>
</td>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
</section>
</div>
</div>
</div>
</body>

最佳答案

好的,经过一些测试我设法克服了这个问题。这是我在代码中修改的内容:

  • 设置要导出的元素的宽度和高度,相当于 A4 页面,以英寸为单位(即设置 width: 7inheight: 9.25in)。这是使一切都适合的唯一变化。
  • 在绘图函数中设置"landscape : false"
  • 为一些包含 div 设置 "border:none""overflow:initial"
  • 更改要导出的目标元素(因此它寻找通用容器 div,而不是带有类和定义的 css 的 div)。

我不确定哪一个解决了我的问题!但我希望它也能解决其他人的问题。

关于javascript - Kendo UI Drawing API 导出 PDF 过早拆分 html 表格,在页面上生成无用的空白空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38925479/

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