我有一个脚本处理来自对象汤的间接对象(它处理PDF的图像)。
所以,我有IndirectObject
,我需要它的页码:
var indiObj = sourceDoc.ObjectSoup[objectToProcess];
我尝试使用sourceDoc.GetInfo(indiObj.ID, "whatever");
,但我不知道哪个属性可以用作类型,因为我找不到任何可能属性列表的文档。
答案 0 :(得分:1)
我询问了版本,因为我正在使用版本7 :(
这是一个有趣的问题(恕我直言)。我首先想到这可能有用:
oDoc.ObjectSoup.Catalog.Pages.GetPageArray
但是,尽管你得到了这些页面,你仍然无法获得每个页面的对象汤(至少在版本7中)......
所以,也许,你可以尝试这样的东西,就像'对象汤'中的PDF代码一样从顶部到底部:
Dim oDoc As New WebSupergoo.ABCpdf7.Doc
Using oDoc
oDoc.Read(path_to_your_PDF)
Dim iPage As Integer = 0
Dim sType As String
For iAux As Integer = 0 To oDoc.ObjectSoup.Count - 1
sType = oDoc.ObjectSoup(iAux).GetType.ToString()
Select Case sType
Case "WebSupergoo.ABCpdf7.Objects.Page"
iPage += 1
Debug.Print(vbNewLine & "Page " & iPage.ToString & " detected")
Case "WebSupergoo.ABCpdf7.Objects.PixMap"
Dim oPDFImg As WebSupergoo.ABCpdf7.Objects.PixMap
oPDFImg = CType(oDoc.ObjectSoup(iAux), WebSupergoo.ABCpdf7.Objects.PixMap)
Debug.Print(vbNewLine & "Image on page " & iPage.ToString & " -> ID " & oPDFImg.ID.ToString)
End Select
Next
End Using
您可以使用“typeof”而不是Select Case(无论如何将'ABCpdf7'更改为'ABCpdf9')。希望它有所帮助。