Ingo,
I have been trying to snoop around and find out how to do what you have suggested. To this end, I have tried to retrieve all the characteristics of the links but I am having a few problems.
Here is the code I am using (powerbasic)
#COMPILE EXE #DIM ALL #DEBUG ERROR ON
#INCLUDE "QuickPDFDLL0717.INC" #INCLUDE "Win32Api.inc"
TYPE AnnoInfo ActionType AS STRING * %MAX_PATH ActionID AS LONG AnnoStr(14) AS STRING * %MAX_PATH AnnoInt(3) AS LONG AnnoDbl(12) AS DOUBLE END TYPE
FUNCTION PBMAIN () AS LONG
DIM InstanceID AS DWORD DIM i AS LONG DIM myAnno AS AnnoInfo DIM InfoString AS STRING
InstanceID = QuickPDFCreateLibrary() IF (QuickPDFUnlockKey(InstanceID, "INSERT YOUR KEY HERE") = 1) THEN IF (QuickPDFLoadFromFile(InstanceID, "TestLinks.pdf") = 1) THEN QuickPDFSelectPage InstanceID, 1
FOR I = 1 TO QuickPDFAnnotationCount(InstanceID) myAnno.ActionID = QuickPDFGetAnnotActionID(InstanceID, i) myAnno.ActionType = QuickPDFGetActionType(InstanceID, myAnno.ActionID) myAnno.AnnoStr(1) = QuickPDFGetAnnotStrProperty(InstanceID, i, 101) myAnno.AnnoStr(2) = QuickPDFGetAnnotStrProperty(InstanceID, i, 102) myAnno.AnnoStr(3) = QuickPDFGetAnnotStrProperty(InstanceID, i, 103) myAnno.AnnoStr(4) = QuickPDFGetAnnotStrProperty(InstanceID, i, 104) myAnno.AnnoStr(5) = QuickPDFGetAnnotStrProperty(InstanceID, i, 111) myAnno.AnnoStr(6) = QuickPDFGetAnnotStrProperty(InstanceID, i, 112) myAnno.AnnoStr(7) = QuickPDFGetAnnotStrProperty(InstanceID, i, 113) myAnno.AnnoStr(8) = QuickPDFGetAnnotStrProperty(InstanceID, i, 114) myAnno.AnnoStr(9) = QuickPDFGetAnnotStrProperty(InstanceID, i, 115) myAnno.AnnoStr(10) = QuickPDFGetAnnotStrProperty(InstanceID, i, 117) myAnno.AnnoStr(11) = QuickPDFGetAnnotStrProperty(InstanceID, i, 118) myAnno.AnnoStr(12) = QuickPDFGetAnnotStrProperty(InstanceID, i, 127) myAnno.AnnoStr(13) = QuickPDFGetAnnotStrProperty(InstanceID, i, 129) myAnno.AnnoStr(14) = QuickPDFGetAnnotStrProperty(InstanceID, i, 130) myAnno.AnnoInt(1) = QuickPDFGetAnnotIntProperty(InstanceID, i, 109) myAnno.AnnoInt(2) = QuickPDFGetAnnotIntProperty(InstanceID, i, 116) myAnno.AnnoInt(3) = QuickPDFGetAnnotIntProperty(InstanceID, i, 128) myAnno.AnnoDbl(1) = QuickPDFGetAnnotDblProperty(InstanceID, i, 105) myAnno.AnnoDbl(2) = QuickPDFGetAnnotDblProperty(InstanceID, i, 106) myAnno.AnnoDbl(3) = QuickPDFGetAnnotDblProperty(InstanceID, i, 107) myAnno.AnnoDbl(4) = QuickPDFGetAnnotDblProperty(InstanceID, i, 108) myAnno.AnnoDbl(5) = QuickPDFGetAnnotDblProperty(InstanceID, i, 119) myAnno.AnnoDbl(6) = QuickPDFGetAnnotDblProperty(InstanceID, i, 120) myAnno.AnnoDbl(7) = QuickPDFGetAnnotDblProperty(InstanceID, i, 121) myAnno.AnnoDbl(8) = QuickPDFGetAnnotDblProperty(InstanceID, i, 122) myAnno.AnnoDbl(9) = QuickPDFGetAnnotDblProperty(InstanceID, i, 123) myAnno.AnnoDbl(10) = QuickPDFGetAnnotDblProperty(InstanceID, i, 124) myAnno.AnnoDbl(11) = QuickPDFGetAnnotDblProperty(InstanceID, i, 125) myAnno.AnnoDbl(12) = QuickPDFGetAnnotDblProperty(InstanceID, i, 126)
InfoString = FORMAT$(myAnno.ActionID) + $LF + _ TRIM$(myAnno.ActionType) + $LF + _ TRIM$(myAnno.AnnoStr(1)) + $LF + _ TRIM$(myAnno.AnnoStr(2)) + $LF + _ TRIM$(myAnno.AnnoStr(3)) + $LF + _ TRIM$(myAnno.AnnoStr(4)) + $LF + _ TRIM$(myAnno.AnnoStr(5)) + $LF + _ TRIM$(myAnno.AnnoStr(6)) + $LF + _ TRIM$(myAnno.AnnoStr(7)) + $LF + _ TRIM$(myAnno.AnnoStr(8)) + $LF + _ TRIM$(myAnno.AnnoStr(9)) + $LF + _ TRIM$(myAnno.AnnoStr(10)) + $LF + _ TRIM$(myAnno.AnnoStr(11)) + $LF + _ TRIM$(myAnno.AnnoStr(12)) + $LF + _ TRIM$(myAnno.AnnoStr(13)) + $LF + _ TRIM$(myAnno.AnnoStr(14)) + $LF + _ FORMAT$(myAnno.AnnoInt(1)) + $LF + _ FORMAT$(myAnno.AnnoInt(2)) + $LF + _ FORMAT$(myAnno.AnnoInt(3)) + $LF + _ FORMAT$(myAnno.AnnoDbl(1)) + $LF + _ FORMAT$(myAnno.AnnoDbl(2)) + $LF + _ FORMAT$(myAnno.AnnoDbl(3)) + $LF + _ FORMAT$(myAnno.AnnoDbl(4)) + $LF + _ FORMAT$(myAnno.AnnoDbl(5)) + $LF + _ FORMAT$(myAnno.AnnoDbl(6)) + $LF + _ FORMAT$(myAnno.AnnoDbl(7)) + $LF + _ FORMAT$(myAnno.AnnoDbl(8)) + $LF + _ FORMAT$(myAnno.AnnoDbl(9)) + $LF + _ FORMAT$(myAnno.AnnoDbl(10)) + $LF + _ FORMAT$(myAnno.AnnoDbl(11)) + $LF + _ FORMAT$(myAnno.AnnoDbl(12)) MSGBOX InfoString QuickPDFDeleteAnnotation(InstanceID, i) NEXT
ELSE MSGBOX "Document not loaded" END IF END IF QuickPDFSaveToFile(InstanceID, "TestLinksModified.pdf") QuickPDFReleaseLibrary(InstanceID)
END FUNCTION
Now when I run this program I do not get all the informatino parameters returned, I only get the first four pieces of information.
I have used debug to look at what is happenning, and I seem to get RTL errors reported when accessing certain pieces of information. The function calls that generate the errors and the error reports are as follows.
myAnno.ActionType = QuickPDFGetActionType(InstanceID, myAnno.ActionID) Invalid address specified to RtlSizeHeap( 00180000, 015D30D8 )<0A>
myAnno.AnnoStr(1) = QuickPDFGetAnnotStrProperty(InstanceID, i, 101)
Invalid address specified to RtlSizeHeap( 00180000, 015D33C0 )<0A>
myAnno.AnnoStr(6) = QuickPDFGetAnnotStrProperty(InstanceID, i, 112)
Invalid address specified to RtlSizeHeap( 00180000, 015D30D8 )<0A>
myAnno.AnnoStr(8) = QuickPDFGetAnnotStrProperty(InstanceID, i, 114)
Invalid address specified to RtlSizeHeap( 00180000, 015EDAE8 )<0A>
myAnno.AnnoStr(13) = QuickPDFGetAnnotStrProperty(InstanceID, i, 129)
Invalid address specified to RtlSizeHeap( 00180000, 0151F6F8 )<0A>
Do you have any ideas as to what these errors are, or is there any other information that I could supply to assist?
Regards
Andrew Lindsay
|