这是我的密码。
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) 从文档中获取PDPage。它会增加页面的引用计数。使用完页面后,使用PDPageRelease()发布它。如果没有调用PDPageRelease(),它可能会阻止包含页面的文档被关闭。为了避免此类问题,请使用CSmartPDPage类,因为它确保页面在超出作用域时被释放。
它提到应该在调用“AcquirePage”之后调用这个API。
发布于 2017-10-25 02:30:16
使用VBA或其他脚本语言,您可以使用OLE自动化。您将找到"Acrobat应用程序间通信参考“的描述。没有PDPageRelease()元素。PDPageRelease()属于插件API。插件只能用C#编写。
如果您只想关闭文档,而不关闭Acrobat,则可以使用以下代码而不是"PDDoc.Close“。Br.莱因哈德
Set AForm = CreateObject("AFormAut.App") '//connect to Form API
exe = "app.execMenuItem('Close');" '//write js-code to variable
AForm.Fields.ExecuteThisJavaScript exe '//execute js-code
https://stackoverflow.com/questions/46905898
复制相似问题