Do you own a Debenu Quick PDF Library version 7, 8, 9, 10, 11, 12, 13 or iSEDQuickPDF license? Upgrade to Debenu Quick PDF Library 14 today!
![]() |
Change Hyperlink Information |
Post Reply ![]() |
Author | |
Andrew Lindsay ![]() Beginner ![]() Joined: 13 Oct 06 Status: Offline Points: 2 |
![]() ![]() ![]() ![]() ![]() Posted: 04 Jan 10 at 11:41PM |
I have a pdf file that has lots of hyperlinks to external documents. I would like to programatically change the link destination (or file source) from X:\MyPath\Doc.pdf - to Y:\MyNewPath\AnotherDirectory\Doc.pdf
Is this possible, and what functions would I need to call.
I am using the DLL version with Powerbasic.
best regards
Andrew Lindsay
|
|
![]() |
|
Ingo ![]() Moderator Group ![]() ![]() Joined: 29 Oct 05 Status: Offline Points: 3530 |
![]() ![]() ![]() ![]() ![]() |
Hi Andrew!
Perhaps here is something for you: http://www.quickpdflibrary.com/help/quickpdf/AnnotationsAndHotspotLinks.php It's possible (perhaps) that DeleteAnnotation works with your links, too. If it's so then you can use: AnnotationCount (how many are there on the page) Get...functions (to get the old properties) DeleteAnnotation (to remove the old one) Add...functions (to set the new one) Cheers, Ingo Edited by Ingo - 05 Jan 10 at 7:14AM |
|
![]() |
|
Andrew Lindsay ![]() Beginner ![]() Joined: 13 Oct 06 Status: Offline Points: 2 |
![]() ![]() ![]() ![]() ![]() |
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
|
|
![]() |
|
Ingo ![]() Moderator Group ![]() ![]() Joined: 29 Oct 05 Status: Offline Points: 3530 |
![]() ![]() ![]() ![]() ![]() |
Hi Andrew!
Sorry... but i think perhaps now's the time to post on the official support-page ;-) Cheers, Ingo |
|
![]() |
Post Reply ![]() |
|
Tweet
|
Forum Jump | Forum Permissions ![]() You cannot post new topics in this forum You cannot reply to topics in this forum You cannot delete your posts in this forum You cannot edit your posts in this forum You cannot create polls in this forum You cannot vote in polls in this forum |
Copyright © 2017 Debenu. Debenu Quick PDF Library is a PDF SDK. All rights reserved. About — Contact — Blog — Support — Online Store