【问题标题】:itext7 in vb.net - Stamp rotated text on top of existing contentvb.net 中的 itext7 - 在现有内容之上标记旋转文本
【发布时间】:2023-01-17 20:53:00
【问题描述】:

我有这段代码,可以将旋转的文本放在 pdf 上我想要的位置:

 Public Sub edit_existing_pdf(inpdf As String, outpdf As String)

        Dim pdf As New PdfDocument(New PdfReader(inpdf), New PdfWriter(outpdf))

        Dim document As New Document(pdf)

        document.ShowTextAligned("This is some test text", 400, 750, TextAlignment.CENTER, VerticalAlignment.MIDDLE, 0.5F * CSng(Math.PI))

        document.Close()

    End Sub

它在“空白”pdf 上运行良好,但在使用现有内容标记 pdf 时不会显示。

我怎样才能将它设置为“超过”而不是“低于”?

【问题讨论】:

  • “我怎样才能将它设置为‘上方’而不是‘下方’?”- 标记“结束”是默认设置,因此您很可能会遇到其他问题。可能是因为您提供了绝对坐标 (400, 750),因为每个现有页面可能都有自己的坐标系。也许这是其他问题。您能否分享一个代表性示例 PDF 以允许重现该问题?
  • 谢谢你的回复。我试图标记的 pdf 是机密的,所以很遗憾我不能分享它,但我会尝试在另一个“填充的”pdf 上复制这个问题并上传它。协调系统是一个我没想到的好主意——我会尝试一些不同的值,看看我的文本是否开始出现。也许它现在正在偏离一边。
  • 嗨 - 你对坐标的看法是正确的,但文字没有离开页面,它被标记到最后一页(第 3 页,共 3 页),我没有注意到这一点,因为我预计它会在第 1 页上 - 我的愚蠢的错误。所以我的下一个问题是:如何控制在哪个页面上标记文本?
  • 如果你想标记特定页面,而不是最后一页,还有另一个 document.ShowTextAligned 的重载,它在坐标参数之后有一个额外的 page 参数。请记住,页码在 iText 中以 1 开头,而不是 0。
  • 谢谢 - 看起来当你添加页码时,它需要一个段落而不是一个字符串?

标签: vb.net itext7


【解决方案1】:

根据 mkl 的帮助,最后一行代码:

document.ShowTextAligned(New Paragraph("This is some test text").SetMultipliedLeading(1).SetMargin(0), 400, 750, 1, TextAlignment.CENTER, VerticalAlignment.MIDDLE, 0.5F * CSng(Math.PI))

【讨论】:

    猜你喜欢
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    • 2012-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-28
    • 1970-01-01
    相关资源
    最近更新 更多