这是我的代码。
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。
答案 0 :(得分:0)
使用VBA或其他脚本语言,您可以使用OLE自动化。您将找到的描述" Acrobat Interapplication Communication Reference"。 没有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