2017-10-24 12 views
0

ここに私のコードです。PDPageRelease APIを呼び出してpdfを公開するにはどうすればいいですか?

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ドキュメント、ASInt32 PAGENUM)は

文書からPDPageを取得します。ページの参照カウントをインクリメントします。ページを使用して の作業が完了したら、PDPageRelease()を使用して解放します。 PDPageRelease()が呼び出されていない場合、 ページが閉じられているドキュメントがブロックされる可能性があります。このような問題を回避するには、 のCSmartPDPageクラスを使用してください。これは、 が範囲外になったときにページが解放されることを保証します。

それはあなたが 『AcquirePage』を呼び出した後、それは、このAPIを呼び出す必要があることに言及します。

答えて

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 
関連する問題