我遇到的问题是,每当我尝试通过CSS2PDF创建PDF时,只要我想要添加的div具有一定长度并且CSS2PDF将返回空白PDF,它就可以正常工作。
因为它一直有效,直到我达到这一点,这不是包含文件的问题。
这是我用来在按钮的点击监听器中使用CSS2PDF的js代码:
return xepOnline.Formatter.Format('main',{embedLocalImages: 'true'});
这是我要添加到PDF的html:
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12" id="main" style="margin-top: 20px;">
<div class="entry" data-entry="5">
<h2>This is the title of the example-report</h2>
<h3>Subtitle, decent, but can also be <b>bold</b></h3>
<div class="wysiwyg-text-align-justify">This is a block of text, copied to represent a longer text.
This is a block of text, copied to represent a longer text.
This is a block of text, copied to represent a longer text.
This is a block of text, copied to represent a longer text.
This is a block of text, copied to represent a longer text.
This is a block of text, copied to represent a longer text.
This is a block of text, copied to represent a longer text.
This is a block of text, copied to represent a longer text.
This is a block of text, copied to represent a longer text.
This is a block of text, copied to represent a longer text.
This is a block of text, copied to represent a longer text.
This is a block of text, copied to represent a longer text.
This is a block of text.
</div>
</div>
<div class="entry" data-entry="7">
<p>Another text block to explain the image above.
Another text block to explain the image above.
Another text block to explain the image above.
Another text block to explain the image above.
Another text block to explain the image above.
Another text block to explain the image above.
Another text block to explain the image above.
Another text block to explain the image above.
Another text block to explain the image above.
Another text block to explain the image above.
Another text block to explain the image above.
</p>
</div>
<div class="entry" data-entry="8">
<h3>A heading for the following graph and table!<br></h3>
</div>
<div class="entry" data-entry="10">
<p class="wysiwyg-text-align-justify">Some text for the diagram above.
Some text for the diagram above.
Some text for the diagram above.
Some text for the diagram above.
Some text for the diagram above.<br>
</p>
<p class="wysiwyg-text-align-justify">
Some text for the diagram above.
Some text for the diagram above.
Some text for the diagram above.
Some text for the diagram above.
Some text for the diagram above.
<br>
</p>
</div>
<div class="entry" data-entry="12">
<p>And some table to finish up the page for now.
And some table to finish up the page for now.
And some table to finish up the page for now.
And some table to finish up the page for now.
And some table to finish up the page for now.
And some table to finish up the page for now.
And some table to finish up the page for now.
And some table to finish up the page for now.
And some table to finish up the page for now.
And some table to finish up the page for now.
And some table to finish up the page for now.
</p>
</div>
<div class="entry" data-entry="14">
<table id="resultTable" class="table table-hover table-striped table-bordered">
<thead>
<tr id="headerFill">
<td>#</td>
<td>Kommune</td>
<td>Value Befolkning</td>
</tr>
</thead>
<tbody id="containerFill">
<tr class="row0">
<td>1</td>
<td>Gällivare</td>
<td>17956</td>
</tr>
<tr class="row1">
<td>2</td>
<td>Vallentuna</td>
<td>32785</td>
</tr>
<tr class="row2">
<td>3</td>
<td>Upplands Väsby</td>
<td>43891</td>
</tr>
<tr class="row3">
<td>4</td>
<td>Stockholm</td>
<td>935619</td>
</tr>
</tbody>
</table>
</div>
<div class="entry" data-entry="17">
<h2>Test</h2>
<h3>Subtitle maybe I will find out what's causing the issue soon....</h3>
</div>
</div>
一旦删除1行,它就会再次起作用。由于某种原因,它也不会自动启动新页面。
修改: tl; dr :当内容达到一定大小时,CSS2PDF会给出空白页,在达到该大小之前,它会起作用。也没有自动分页符。
答案 0 :(得分:0)
可能是因为解析后的CSS中的bootstrap风格的自反布局(col- *)映射到了float。 CSS2PDF基本上将带有已解析CSS的HTML转换为XSL FO并对其进行格式化。在XSL FO(以及任何面向页面的语言)中,“float”不能大于页面。
尝试在没有class =“col-lg-12 col-md-12 col-sm-12 col-xs-12”的情况下进行格式化。
如果您尝试使用col-md-4为每列格式化三列中的页面,则会遇到同样的问题。这些将并排解析为三个浮点数,如果它们大于页面,则无法控制它们的行为,这会破坏格式化。甚至浏览器也很难尝试“打印”它。