iTextSharp在运行时在PDF上绘制矩形

时间:2018-08-01 10:03:56

标签: vb.net pdf itext

我正在使用iTextSharp从PDF中的特定区域读取文本-例如,客户根据采购订单处理详细信息。

iTextSharp库对此非常适合,但是我希望用户能够处理来自任何客户的任何PDF。因此,我需要他们能够定义地址数据在PDF上的位置,以便随后可以从文档中读取数据。

我正在将ITextExtractionStrategy与RegionTextRenderFilter一起使用以指定要读取的区域。因此,我需要一个界面来允许用户指定适当的区域/坐标以传递给这些功能。见下文:

Public Function ReadPdfFiles(filepath As String, pageno As Integer, cordinate1 As Integer, coordinate2 As Integer, coordinate3 As Integer, coordinate4 As Integer) As String()

    Dim reader As New PdfReader(filepath)
    Dim text As String = String.Empty
    Dim words As String() = Nothing

    Try
        Dim rect As New iTextSharp.text.Rectangle(cordinate1, coordinate2, coordinate3, coordinate4)


        Dim renderFilter As RenderFilter() = New RenderFilter(0) {}

        renderFilter(0) = New RegionTextRenderFilter(rect)

        Dim textExtractionStrategy As ITextExtractionStrategy = New FilteredTextRenderListener(New LocationTextExtractionStrategy(), renderFilter)

        text = PdfTextExtractor.GetTextFromPage(reader, pageno, textExtractionStrategy)
        words = text.Split(ControlChars.Lf)

        Return words
    Catch Ex As Exception
        reader.Close()
        Return words
    Finally

        reader.Close()
    End Try
End Function

我无法解决的问题是如何为前端窗体上显示的PDF创建某种叠加层,该叠加层将允许用户绘制一个矩形,然后可以将其转换为iTextSharp的可靠坐标以能够使用...

任何想法?

0 个答案:

没有答案