You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET中iText7旋转文本盖印现有PDF不显示,如何设置上层盖印?

解决方法

要让旋转文本盖印在PDF现有内容上方,你需要直接操作页面的画布(Canvas),确保新内容被添加到现有内容的绘制顺序之后。原代码中Document.ShowTextAligned默认会将内容插入到页面内容流的前端,导致被原有内容覆盖。

修改后的代码如下:

Public Sub edit_existing_pdf(inpdf As String, outpdf As String)
    ' 打开PDF文档,Using语句自动释放资源
    Using pdf As New PdfDocument(New PdfReader(inpdf), New PdfWriter(outpdf))
        ' 获取需要添加文本的页面(此处为第一页,批量处理可遍历所有页码)
        Dim page As PdfPage = pdf.GetPage(1)
        ' 创建Canvas,通过NewContentStreamAfter()将内容追加到现有内容之后(显示在上方)
        Using canvas As New Canvas(page.NewContentStreamAfter(), page.GetResources(), pdf)
            ' 显示对齐并旋转的文本,参数与原代码一致
            canvas.ShowTextAligned("This is some test text", 400, 750, TextAlignment.CENTER, VerticalAlignment.MIDDLE, 0.5F * CSng(Math.PI))
        End Using
    End Using
End Sub

关键细节

  • 内容流顺序:PDF的内容是按绘制顺序堆叠的,后绘制的内容会覆盖先绘制的。page.NewContentStreamAfter()会将新内容流添加到现有内容的后面,确保文本显示在最上层。
  • 资源管理:使用Using语句自动释放PdfDocument和Canvas资源,避免内存泄漏。
  • 批量处理:如果需要给所有页面添加文本,可通过循环遍历1到pdf.GetNumberOfPages()的页码,逐个调用上述逻辑处理每页。

内容的提问来源于stack exchange,提问作者Ash_stack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 06:10:31