Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Anzeigen & NamedDest in PDF File mit ActiveX/AcroPDF (https://www.delphipraxis.net/74825-anzeigen-nameddest-pdf-file-mit-activex-acropdf.html)

Schatzy 9. Aug 2006 10:51


Anzeigen & NamedDest in PDF File mit ActiveX/AcroPDF
 
Halllöööchen,

ich hab ein Problem mit der Anwendung von ActiveX/AcroPDF.
Öffnen lässt sich die gewünschte PDF mit
Delphi-Quellcode:
 myPDF70.LoadFile('gewuenschteFile.pdf');
Aber nun möchte ich an eine gewünschte Stelle im Dokument Springen.
Dies soll laut Doku folgendermaßen ablaufen:
Zitat:

SetNamedDest
void setNamedDest(BSTR szNamedDest);
Description
Changes the page view to the named destination in the specified string.
szNamedDest = The named destination to which the viewer will go.
Allerdings wird beim Öffnen des PDF die zuletzt angezeigte Seite geöffnet. :gruebel:

Hier mal mein Source:
Delphi-Quellcode:
unit GoToAcro_Set;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, AcroPDFLib_TLB, OleCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }

    aPDF_myPDF70                       : TAcroPDF;
    b_myPDF70Created                  : boolean;
    s_param_Document, s_param_Location : string;

  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin

 s_param_Document := Paramstr(1);
 s_param_Location := ParamStr(2);

 try

   aPDF_myPDF70        := TAcroPDF.Create(self);
   aPDF_myPDF70.Parent := Form1;
   aPDF_myPDF70.Align := alclient;
   
   aPDF_myPDF70.setViewScroll('Fit',10.0);

   aPDF_myPDF70.LoadFile(s_param_Document);

   if (s_param_Location >= '0') and (s_param_Location <= '9') then
     aPDF_myPDF70.setCurrentPage(strtoint(s_param_Location))
     else
       //* hier liegt das Problem. Es wird nicht ausgeführt!!
       aPDF_myPDF70.setNamedDest(s_param_Location);

   b_myPDF70Created := true;

  except

    b_myPDF70Created := false;
    aPDF_myPDF70.Free;
    ShowMessage('Keine gültigen Parameter');

  end;

end;

end.
Kann mir jemand sagen woran dies liegen kann....
bin hier schon total am verzweifeln :wall:

LG Schatzy :wink:

Schatzy 10. Aug 2006 10:51

Re: Anzeigen & NamedDest in PDF File mit ActiveX/AcroPDF
 
Ich sollte noch kurz erläutern, wie man mein Source in einem Delphi - Projekt einbinden kann. :lol:
Die .dll "AcroPDFLib_TLB" muss erst eingebunden werden, damit das Programm läuft.
Die Anleitung hierzu findet ihr unter:

Adobe Reader 7.0 in Delphi einbinden

Vielleicht wisst ihr ja jetzt weiter, da ich mit meinem Problem noch kein Stück weiter bin... :|

LG Schatzy :wink:

Schatzy 15. Aug 2006 06:47

Re: Anzeigen & NamedDest in PDF File mit ActiveX/AcroPDF
 
So, hallöchen nochmal,

habe das Problem jetzt gelöst und wollte diejenigen, die evtl das selbe Poblem haben mal auf die Sprünge helfen :zwinker:

Undzwar habe ich das Problem mit ShellExecute gelöst. Habe herausgefunden, dass man im Adobe Reader eigene unsichtbare Springpunkte einfügen kann, die mit "setNamedDest" angesprochen werden können.

Delphi-Quellcode:
ShellExecute(Handle,'open', PChar('AcroRd32.exe'), PChar('/A "nameddest='+ 'NameSpringpunkt' +'" "'+'NamePDFDokument+'"'),nil, SW_NORMAL);
:thumb:

LG Schatzy :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz