html转pdf之前如何获取pdf的页码,使用“视图”时如何在dompdf PDF上获取页码

小编典典

__关于 > = 1的changes版本的

更新

。由于dompdf_config.inc.php文件已从此发行版中删除(并且不再被引用),因此应在运行时设置所有dompdf选项。

4.现在实例化FontMetrics类而不是静态类。 为了简化从dompdf早期版本的嵌入式脚本的迁移,我们提供了通过$

fontMetrics变量访问实例化的FontMetrics类的功能。 请更新您的嵌入式脚本。 例如,FontMetrics ::

get_font(’helvetica’)现在将是$ fontMetrics- > getFont(’helvetica’)。〜感谢Dennis

Ameling的回答,以获取更新的信息。dompdf

0.7.0

通过查看dompdf_config.inc.php文件找到了我的答案。事实证明,DOMPDF_ENABLE_PHP设置为false从而导致内联php脚本被忽略。我简单地编辑dompdf_config.custom.inc.php了以下内容,一切都很好,并且可以使用中的更高版本的代码view。

~~~~

在dompdf / dompdf_config.custom.inc.php中

define("DOMPDF_ENABLE_PHP", true);

在运行时

$dompdf->set_option("isPhpEnabled", true);

然后,在我的html文件中

if ( isset($pdf) ) {

// OLD

// $font = Font_Metrics::get_font("helvetica", "bold");

// $pdf->page_text(72, 18, "{PAGE_NUM} of {PAGE_COUNT}", $font, 6, array(255,0,0));

// v.0.7.0 and greater

$x = 72;

$y = 18;

$text = "{PAGE_NUM} of {PAGE_COUNT}";

$font = $fontMetrics->get_font("helvetica", "bold");

$size = 6;

$color = array(255,0,0);

$word_space = 0.0; // default

$char_space = 0.0; // default

$angle = 0.0; // default

$pdf->page_text($x, $y, $text, $font, $size, $color, $word_space, $char_space, $angle);

}

如果您走这条路,别忘了重启 Apache

2020-05-29

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在reportlab中,可以使用PageTemplate和PageDrawTemplate来获取pdf页码。 PageTemplate可以定义页面的布局和格式,在其中可以定义一个PageNumberFlowable来显示页码。 例如: ```python from reportlab.lib.pagesizes import letter from reportlab.platypus import SimpleDocTemplate, PageTemplate, PageBreak, Frame from reportlab.lib.units import inch doc = SimpleDocTemplate("test.pdf", pagesize=letter) frame = Frame(doc.leftMargin, doc.bottomMargin, doc.width, doc.height, id='normal') template = PageTemplate(id='test', frames=[frame]) doc.addPageTemplates([template]) # 添加页码 doc.build(story, onFirstPage=myPageNumber, onLaterPages=myPageNumber) def myPageNumber(canvas, doc): canvas.drawString(inch, 0.75 * inch, "Page %d" % doc.page) ``` 或者 PageDrawTemplate 可以在页面上绘制文本或图像,也可以用来显示页码。 例如: ```python from reportlab.lib import pagesizes from reportlab.lib.units import inch from reportlab.platypus import SimpleDocTemplate, PageTemplate, PageBreak from reportlab.lib.pagesizes import letter doc = SimpleDocTemplate("test.pdf", pagesize=letter) def myFirstPage(canvas, doc): canvas.saveState() canvas.setFont('Times-Roman', 9) canvas.drawString(inch, 0.75 * inch, "Page %d" % doc.page) canvas.restoreState() def myLaterPages(canvas, doc): canvas.saveState() canvas.setFont('Times-Roman', 9) canvas.drawString(inch, 0.75 * inch, "Page %d" % doc.page) canvas.restoreState() # set the page template and page number doc.addPageTemplates([PageTemplate(id='First',frames=frame, onPage=myFirstPage),PageTemplate(id='Later',frames=frame, onPage=myLaterPages)]) ``` 在这两种方法中, 通过doc.page来获取当前的页码.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值