Php 在html中动态添加分页符,使其具有可变大小的可变节数
我正在尝试解决当前的问题,我需要一些帮助: 从使用php的数据库中,页面必须加载X个部分,每个部分顶部有一些内容,底部有一个表和一些内容,表可以有0到任意数量的行,这取决于数据库中以前的内容。 除了表格之外,其余内容的大小没有变化 由于表格的原因,我无法事先知道每个部分的大小,通常至少有30个部分 这一页必须是打印友好的,除了分页符,一切都已经工作 我需要找到一种方法来动态添加分页符,以便在不在页面之间剪切部分的情况下将其放入页面中 代码大约有400行,所以在这里发布是不切实际的,但是节结构是这样的:Php 在html中动态添加分页符,使其具有可变大小的可变节数,php,jquery,html,css,page-break,Php,Jquery,Html,Css,Page Break,我正在尝试解决当前的问题,我需要一些帮助: 从使用php的数据库中,页面必须加载X个部分,每个部分顶部有一些内容,底部有一个表和一些内容,表可以有0到任意数量的行,这取决于数据库中以前的内容。 除了表格之外,其余内容的大小没有变化 由于表格的原因,我无法事先知道每个部分的大小,通常至少有30个部分 这一页必须是打印友好的,除了分页符,一切都已经工作 我需要找到一种方法来动态添加分页符,以便在不在页面之间剪切部分的情况下将其放入页面中 代码大约有400行,所以在这里发布是不切实际的,但是节结构是这
名称:名称
ID:编号
1:
2:
3:
4:
1.
2.
3.
4.
某物1:某物
某物2:数字
Something3:number
这是PHP代码示例,如果有不清楚的地方,请告诉我。我尝试使用自解释变量名
<?php
$PAGEBREAK_LENGTH = 1000; // Add a page break every 1000 characters.
$lengthTracker = '';
while ($row = odbc_fetch_array($res)){
$lengthTracker .= $row['article'];
$lengthSize = strlen($lengthTracker);
if ($lengthSize > $PAGEBREAK_LENGTH) {
echo '<div class="page-break">This is a page break</div>';
$lengthTracker = ''; // Reset length tracker since we just added a break
}
echo '<div class="article">';
echo $row['article'];
echo '</div>';
}
?>
如果在回送文章之前包含If($lengthSize>$PAGEBREAK\u LENGTH)
,则倾向于“更频繁地”包含分页符。如果在回送文章之后包含If
语句,则分页符的频率会降低(因此可能会有更大的文本块)
尝试这两种方法,看看你喜欢哪种风格,因为你(大概)不能在文章的中间包含分页符。我发现我的问题不是由错误的分页符引起的,而是我在一个元素中有负的边距,通过删除它,破坏了分页符的整个工作方式,它工作正常。这可能由PHP或JS代码处理,因此请包含您的PHP代码。您在PHP中要做的是。。。您可能在
循环中为或输出节,对吗?因此,您只需跟踪循环次数,并在每次$i%2==0时添加分页符(如果您希望每隔一个循环进行一次分页符)。这有意义吗?是的,有意义,谢谢你的回复,但这没有帮助,因为有时我必须在1个循环后分页符,有时在5个或3个或任何数字后分页符,因为节的大小改变了…我可以把PHP代码放在哪里?对于我在firefox上得到的答案来说,这是一个巨大的挑战,但chrome将我的所有部分一分为二,即使整个站点中的每个dom都是浮动的:无和位置:相对的,所有部分都设置为内部分页符:avoid@RicardoMelo我必须看到一个垃圾桶才能帮上忙。听起来你可能有预设的高度或其他东西。这是一个非常奇怪的问题,每次分页符后拆分的大小都会翻倍,我用一个非常不优雅的东西进行了修复,每次分页符后,我都添加了一个最小高度为1cm*分页符数的部分,现在它在chrome上也可以正常工作