打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VB.Net VBA 访问 Acrobat,浏览所有 annotation. 代码执行通过.

下面是VBA中的代码

'//mr:: 调用acrobat的方法, 大小写都可以.'//mr:: 不需要AcroExch.App这个对象.Sub GetAnnotationFromPDF()Dim AcrApp As Acrobat.AcroAppDim AcrAvDoc As Acrobat.AcroAVDocDim pdDoc As Acrobat.CAcroPDDocDim Jso As ObjectDim Annots() As VariantDim Annot As VariantDim Props As ObjectDim strContent, strSubType, strAuthor, strSubject As String'Set AcrApp = New Acrobat.AcroApp'Set AcrApp = CreateObject("AcroExch.App")'Set AcrAvDoc = AcrApp.GetActiveDoSet pdDoc = CreateObject("AcroExch.PDDoc")pdDoc.Open ("C:\Users\OneCrazyStone\Desktop\H12_hdevelop_users_guide_JOM.pdf")'Set pdDoc = AcrAvDoc.GetPDDocSet Jso = pdDoc.GetJSObjectJso.syncAnnotScan  '//mr?? 这句还不能少Annots = Jso.getAnnots()Dim i As Integeri = 0For Each Annot In Annots    Set Props = Annot.getprops    strAuthor = Props.Author    strSubject = Props.Subject    strContent = Props.contents    strSubType = Props.Type        Debug.Print str(i)   " "   strAuthor   " "   strSubType   " "   strContent    NextSet Props = NothingSet Annot = Nothing'Set Annots = NothingErase AnnotsSet Jso = NothingSet pdDoc = NothingSet AcrAvDoc = Nothing

下面是VB.Net中的代码

Public Sub Main()        'Dim SOURCE_DOCUMENT As String = System.Windows.Forms.Application.StartupPath   "\..\..\..\..\TestFiles\FormSample.pdf"        'C:\Users\OneCrazyStone\Desktop\H12_hdevelop_users_guide_JOM.pdf        Dim SOURCE_DOCUMENT As String = "C:\Users\OneCrazyStone\Desktop\H12_hdevelop_users_guide_JOM.pdf"        Dim DATA_FILE As String = System.Windows.Forms.Application.StartupPath   "\..\..\..\..\TestFiles\data.txt"        ' create at root level of sample        Dim OUTPUT_FOLDER As String = System.Windows.Forms.Application.StartupPath   "/../../outputfolder/"        System.IO.Directory.CreateDirectory(OUTPUT_FOLDER)        Dim outputString As String        Dim i As Short        ' We gain access to the JavaScript DOM through the GetJSObject method        ' of the CAcroPDDoc object.        On Error GoTo ErrorHandler        Dim retVal As Integer        Dim count As Integer        Dim srcDoc As Acrobat.CAcroPDDoc        Dim srcApp As Acrobat.CAcroApp        ' Open the source PDF document        'srcApp = CreateObject("AcroExch.App")        srcDoc = CreateObject("AcroExch.PDDoc")        retVal = srcDoc.Open(SOURCE_DOCUMENT)        If retVal <> -1 Then            Err.Description = "Failed to open source document. Make sure that SOURCE_DOCUMENT has been configured."            GoTo ErrorHandler        End If        ' Acquire the JSObject interface        jsObj = srcDoc.GetJSObject        jsObj.syncAnnotScan()        Dim newDoc As Object        Dim template As Object        Dim existAnnotations() As Object        Dim annots As Object        Dim props As Object        Dim aa As Object        existAnnotations = jsObj.getannots()        For Each aa In existAnnotations            props = aa.getProps            Debug.Print(props.Author   props.Contents)        Next      EndSub:        System.Runtime.InteropServices.Marshal.ReleaseComObject(jsObj)        jsObj = Nothing        If Not srcDoc Is Nothing Then            srcDoc.Close()            System.Runtime.InteropServices.Marshal.ReleaseComObject(srcDoc)            srcDoc = Nothing        End If        Exit SubErrorHandler:        MsgBox("Error Occured: " & Err.Description)        Resume EndSubEnd Sub

在C#中调用Acrobat类型库, 如果也使用GetJSObject的话, 好像比较麻烦. 没有时间进一步研究

来源:https://www.icode9.com/content-4-746551.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
VB.net数据库编程(01):简单的入门实例
常用VB操作ACCESS数据库代码
VB excel 读写 创建图表
vb ado 复制数据库的一条记录到另一个相同的数据库中(access文件)
VB.NET连接数据库的几种方法
Visual Basic访问数据库的常见问题
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服