首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用PhP控制打印内容

使用PhP控制打印内容
EN

Stack Overflow用户
提问于 2014-02-03 18:05:21
回答 2查看 174关注 0票数 0

大家好!

我有一个打印问题,所以我将解释这个问题,并分享一些基本的代码,但编码不是问题,问题是我使用了错误的方法,肯定有更好的方法。

我的网页是通过使用PhP从mySQL获取信息并将每组信息显示为表格而生成的。所以我可能在一页上有3个表,或者100个表。问题是,我真的需要打印这个,但当我这样做时,谷歌将分页符直接放入我的表格中。

根据我需要显示多少信息,表格的高度会有所不同。我使用javascript来设置打印区域。

下面你会看到我试着用表格3预测分页符,但是当表格1和2超过一页时,它会把分页符放在表格2中,然后页面2的其余部分是空的,表格3只在页面3上找到。在这种情况下,我需要它把分页符放在表格2之前,这样整个表格就会打印在页面2上。

代码语言:javascript
运行
复制
<div id='print_area'>
  <table>
    this is table 1
  </table>

  <table>
    this is table 2
  </table>

  <table style='page-break-before:always'>
    this is table 3
  </table>

</div>

很抱歉,我需要离开一天,但我真的希望有人能帮助解决这个问题。我明天会再来看看。

提前谢谢你!

EN

回答 2

Stack Overflow用户

发布于 2014-02-03 18:34:57

在实际打印之前,先计算每个表中的行数。假设一页上可以容纳的行数,以及表头/表间所需的空间。

举个例子

代码语言:javascript
运行
复制
$rows_between_tables=3
$rows_needed_for_header=2
$rows_used_on_this_page=0
$rows_per_page=72  # (depends on font size etc.)

while (there_is_another_table_to_print()) {
    $rows_after_this_table = $rows_used_on_this_page +
        $rows_needed_for_header + $rows_between_tables +
        rows_for_next_table()
    if ($rows_after_this_table > $rows_per_page) {
        $rows_used_on_this_page=$rows_needed_for_header + rows_for_next_table()
        print_next_table_with_page_break_in_front_of_it();
    }
    else {
        $rows_used_on_this_page=$rows_after_this_table;
        print_next_table_no_page_break();
    }
}
票数 1
EN

Stack Overflow用户

发布于 2014-02-03 18:39:22

仅仅使用PHP和HTML是无法保证页面布局的。您是否考虑过创建PDF而不是可打印的网页?有一些非常简单但功能强大的PDF库可用于PHP,我首选的是FPDF

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21524334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档