【问题标题】:How to call PDPageRelease API to release pdf?如何调用 PDPageRelease API 发布 pdf?
【发布时间】: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。

【问题讨论】:

    标签: vba ms-word acrobat


    【解决方案1】:

    使用 VBA 或其他脚本语言来处理 OLE 自动化。您将在描述中找到“Acrobat Interapplication Communication Reference”。 没有 PDPageRelease() 元素。 PDPageRelease() 属于插件 API。插件只能用 C# 编写。

    如果您只想关闭文档,而不关闭 Acrobat,您可以使用以下代码代替“PDDoc.Close”。兄弟。莱因哈德

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-16
      • 2013-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-13
      • 1970-01-01
      相关资源
      最近更新 更多