【发布时间】:2023-04-02 08:54:01
【问题描述】:
这是我的代码。
Public Function GetPDFLastTwentyText(ByVal pstrPdfFilename As String) As String
Dim PDDoc As Object
Dim CAcroRect As New Acrobat.AcroRect
Dim PDPage As Acrobat.AcroPDPage
Dim PDTxtSelect As Acrobat.AcroPDTextSelect
Dim CArcoPoint As Acrobat.AcroPoint
Dim iNumWords As Integer
Dim iMax As Long
Dim arPdfLines() As String
Dim i As Integer
Dim fso As FileSystemObject
GetPDFLastTwentyText = ""
Set fso = New FileSystemObject
If fso.FileExists(pstrPdfFilename) Then
Set PDDoc = CreateObject("AcroExch.PDDoc")
PDDoc.Open pstrPdfFilename
Set PDPage = PDDoc.AcquirePage(PDDoc.GetNumPages() - 1)
Set CArcoPoint = PDPage.GetSize()
CAcroRect.Top = CArcoPoint.y
CAcroRect.Left = 0
CAcroRect.Right = CArcoPoint.x
CAcroRect.bottom = 0
Set PDTxtSelect = PDDoc.CreateTextSelect(PDDoc.GetNumPages() - 1, CAcroRect)
...
PDDoc.Close
End If
Set fso = Nothing
Set PDTxtSelect = Nothing
Set CAcroRect = Nothing
Set CArcoPoint = Nothing
Set PDPage = Nothing
Set PDDoc = Nothing
End Function
我不知道如何使用这个 API。
PDPageRelease()
还有关于这个API的官方文档吗?
这是我在 adobe 的 API 文档中找到的描述。
PDPage PDDocAcquirePage(PDDoc doc, ASInt32 pageNum)
从 一份文件。它增加页面的引用计数。在你之后 使用页面完成后,使用 PDPageRelease() 释放它。如果 PDPageRelease() 未被调用,它可能会阻止包含 页面被关闭。为避免此类问题,请使用 CSmartPDPage 类,因为它确保页面在运行时被释放 超出范围。
它提到它应该在你调用『AcquirePage』之后调用这个API。
【问题讨论】: