Hallo,
vielleicht kann mir jemand weiterhelfen.
Folgendes Problem:
Ein PDF wird seitenweise in einem Lazarus-Projekt mittels eingebundenem SumatraPDF.exe eingelesen.
Das PDF wird in eigenem Panel gezeigt.
procedure TForm1.ButtonLadenClick(Sender: TObject);
begin
SeitenNummer:=1; //pagenumber
PDFProcess:=TProcess.Create(nil);
if OpenDialog1.Execute
then
begin
PDFFileName:=UTF8Decode(OpenDialog1.filename); //Pfad der PDF-Datei
Anzahl:=SeitenAnzahl(PDFFileName);
if Anzahl>0 then
with PDFProcess do
begin
CommandLine := SumatraPfad +
' -plugin ' + IntToStr(PanelPDF.Handle)+
' -named-dest '+PDFFilename+' page 1'+
' -view "single page"'+
' -zoom '+IntToStr(SpinEditZoom.Value);
Execute;
end
end;
end;
Dabei gibt es PDF-Dateien, bei denen die letzte Seite über diesen Weg (CommandLine) nicht eingelesen/angezeigt wird. Auch Weiterblättern endet an der vorletzten Seite.
with PDFProcess do
begin
CommandLine := SumatraPfad+
' -reuse-instance -plugin '+
IntToStr(PanelPDF.Handle)+
'-named-dest '+PDFFilename+ //PDFFilename : Pfad der PDF-Datei
' -page '+intToStr(Seitennummer)+
' -view "single page"'+
' -zoom '+IntToStr(SpinEditZoom.Value);
Execute;
end;
Mit MS-Word erstellte PDF-Dateien werden alle Seiten vollständig angezeigt, von aus MS-PowerPoint erstellte PDF-Dateien erfolgt die Anzeige nur bis zur vorletzten Seite.
SumatraPDF - PDF-Viewer-Komponente in Lazarus-Projekt
- Jorg3000
- Lazarusforum e. V.
- Beiträge: 359
- Registriert: So 10. Okt 2021, 10:24
- OS, Lazarus, FPC: Win64
- Wohnort: NRW
Re: SumatraPDF - PDF-Viewer-Komponente in Lazarus-Projekt
Moin!
Zu deiner Frage bezüglich der angezeigten Seiten kann ich leider nichts sagen, aber Danke für den Source!
Zwei Dinge sind mir bei deinem Kommandozeilenaufruf aufgefallen:
Vor -named-dest fehlt ein Leerzeichen, d.h. es vermischt sich mit der Handle-Nummer.
Und die Übergabe von PDFFilename sollte von Anführungszeichen umschlossen werden, für den Fall dass im Pfad/Dateinamen Leerzeichen enthalten sind.
Grüße, Jörg
Zu deiner Frage bezüglich der angezeigten Seiten kann ich leider nichts sagen, aber Danke für den Source!

Zwei Dinge sind mir bei deinem Kommandozeilenaufruf aufgefallen:
Vor -named-dest fehlt ein Leerzeichen, d.h. es vermischt sich mit der Handle-Nummer.
Und die Übergabe von PDFFilename sollte von Anführungszeichen umschlossen werden, für den Fall dass im Pfad/Dateinamen Leerzeichen enthalten sind.
Grüße, Jörg