pageref auf letzte Seite eines inkludierten PDF's

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: pageref auf letzte Seite eines inkludierten PDF's

von godi » Di 3. Mär 2015, 13:44

Ich schließe jetzt den Thread,
jedoch wenn jemand noch eine Idee hat wie man dies besser lösen kann, dann ist diese herzlich willkommen! :)

von godi » Di 3. Mär 2015, 12:35

Danke Ulrike, jedoch ist das Problem bei der Lösung, wenn nicht alle Seiten des pdf's eingebunden werden, dann stimmt es auch wieder nicht.

Ich habe jetzt eine Lösung mittels externen File gefunden.
Die Schönste ist diese bestimmt nicht, funktioniert jedoch:
\documentclass[a4paper]{scrartcl}

\usepackage{pdfpages}
\usepackage{hyperref}

\usepackage{newfile}


\newcommand* \lastPdfLabel{}
\newcommand* \setLastPdfLabel[1] {
	\renewcommand{\lastPdfLabel}{#1}
}

% Inkludiert ein Pdf
\newcounter{pdfPage}
\newcommand* \PDF[1]{  
   \cleardoublepage
   \phantomsection
   \newpage
   \setcounter{pdfPage}{0}        
   \includepdf[pages=-, link=true, linkname=#1,  pagecommand={\refstepcounter{pdfPage}\label{#1.\thepdfPage}}]{#1}
   \setLastPdfLabel{#1.\thepdfPage}   
}

\newcommand*{\lastLabel}{}
\newcommand*{\setLastLabel}[1]{\renewcommand*{\lastLabel}{#1}}

% Seitennummerierung in der Fußzeile mit pageref
\renewcommand*{\pagemark}{{\usekomafont{pagenumber}{%
    Seite \thepage /\pageref{\lastLabel}}}}


% Schreibe letztes Label in externes File
\newoutputstream{pageLabel}
\newcommand* \labelFile {\jobname.godi}
\newcommand* \outputPath {./build/}	
\newcommand* \labelFilePath {\outputPath \labelFile}

\newcommand \writeToLabelFile[1]{
	\openoutputfile{\labelFile}{pageLabel}
	\addtostream{pageLabel}{#1}  	
	\closeoutputstream{pageLabel}
}

\AtBeginDocument{
	\IfFileExists{\labelFilePath}{}{
			\writeToLabelFile{Label muss erst generiert werden}
	}
}

\AtEndDocument{
	\writeToLabelFile{\noexpand\setLastLabel{\lastPdfLabel}}	
}


\begin{document}
\setLastLabel{LastPage:Abschnitt1}
\hyperlink{PDF1.1}{Link zur ersten Seite des geladenen PDFs}\\
\hyperlink{PDF2.1}{Link zur ersten Seite des zweiten geladenen PDFs}\\
\hyperref[Abschnitt3]{Link zum Abschnitt 3}

\newpage
Hier noch eine Zweite Seite im Abschnitt 1.
\phantomsection\label{\lastLabel}

\newpage
\setcounter{page}{1}
  
% Laden des Labels der letzten pdf Seite	
\input{\labelFilePath}

Hier beginnt der Abschnitt mit den inkludierten Pdf
\PDF{PDF1}
\PDF{PDF2}


\newpage
\setcounter{page}{1}
\setLastLabel{LastPage:Abschnitt3}
\phantomsection\label{Abschnitt3}
Hier ist Abschnitt 3.
\newpage
Mit mehreren Seiten.
\phantomsection\label{\lastLabel}

\end{document}
[/code]

von u_fischer » Di 3. Mär 2015, 11:09

von godi » Di 3. Mär 2015, 10:45

Hallo,

ich habe die Dokumentation schon gelesen und mit den links rumprobiert.
Jedoch habe ich \hyperref verwendet was in diesem Fall nicht funktioniert.
Mit \hyperlink funktioniert es.

Was jetzt natürlich toll ist, da ich mir den Zähler sparen kann.

Aber wie viele Seiten inkludiert worden sind kann ich aus dem Paket nicht auslesen oder?

von u_fischer » Di 3. Mär 2015, 09:56

Man soll die Dokumentation gelegentlich auch zur Kenntnis nehmen. pdfpages fügt bereits Anker ein:
\documentclass[a4paper]{scrartcl}

\usepackage{pdfpages}
\usepackage{hyperref}

\begin{document}
\hyperlink{test-input.pdf.1}{Link auf PDF erste Seite}

\newpage

\includepdf[pages=-,link]{test-input}

\end{document}

von godi » Di 3. Mär 2015, 09:54

Ja lastpage ist mir bekannt, jedoch funktioniert lastpage nicht mehr wenn ich den Seitenzähler neu setze.

Aber mit deiner Idee dem zweiten Label, dass beim pdf include gesetzt wird bin ich jetzt weiter gekommen.
Die Warnings bezüglich doppelten Label werde ich da ja nicht wegbekommen oder?

Hier mal ein größeres Bsp, das jetzt für meine Ansprüche funktioniert:
\documentclass[a4paper]{scrartcl}

\usepackage{pdfpages}
\usepackage{hyperref}


% Inkludiert ein Pdf
\newcounter{pdfPage}
\newcommand* \PDF[1]{  
   \cleardoublepage
   \phantomsection
   \newpage
   \setcounter{pdfPage}{0}        
   \includepdf[pages=-, pagecommand={\stepcounter{pdfPage}\phantomsection\label{#1.\thepdfPage}\label{#1}}]{#1}    
}

\newcommand*{\lastLabel}{}
\newcommand*{\setLastLabel}[1]{\renewcommand*{\lastLabel}{#1}}

% Seitennummerierung in der Fußzeile mit pageref
\renewcommand*{\pagemark}{{\usekomafont{pagenumber}{%
    Seite \thepage /\pageref{\lastLabel}}}}



\begin{document}
\setLastLabel{LastPage:Abschnitt1}
\hyperref[PDF1.1]{Link zur ersten Seite des geladenen PDFs}\\
\hyperref[PDF1]{Link zur letzten Seite des geladenen PDFs}\\
\hyperref[PDF2.1]{Link zur ersten Seite des zweiten geladenen PDFs}\\
\hyperref[PDF2]{Link zur letzten Seite des zweiten geladenen PDFs}\\
\hyperref[Abschnitt3]{Link zum Abschnitt 3}

\newpage
Hier noch eine Zweite Seite im Abschnitt 1.
\phantomsection\label{\lastLabel}

\newpage
\setcounter{page}{1}
\setLastLabel{PDF2}%Oder irgend ein anderer Name
Hier beginnt der Abschnitt mit den inkludierten Pdf
\PDF{PDF1}
\PDF{PDF2}


\newpage
\setcounter{page}{1}
\setLastLabel{LastPage:Abschnitt3}
\phantomsection\label{Abschnitt3}
Hier ist Abschnitt 3.
\newpage
Mit mehreren Seiten.
\phantomsection\label{\lastLabel}

\end{document}

von Noch so einer » Di 3. Mär 2015, 09:12

Da das doch gleich. Das hat dann ja nicht mehr das geringste damit zu tun, ob Du ein PDF einbindest oder über weiße Elefanten schreibst. Das geht einfach mit lastpage?
\usepackage{lastpage}
\renewcommand*{\pagemark}{{\usekomafont{pagenumber}{%
    Seite \thepage /\pageref{LastPage}}}}

von godi » Di 3. Mär 2015, 08:40

Noch so einer hat geschrieben: Allerdings erscheint mit die Angabe n/m im Fuß etwas seltsam, wenn m gar nicht die Gesamseitenzahl des Dokumets, sondern die Gesamtseitenzahl des eingebundenen Dokuments ist. Im Beispiel wirkt das auf der letzten Seite mehr als eigentümlich.
Ja, ich will eigentlich auch die gesamte Seitenanzahl des Dokuments dort stehen haben. :)

von Noch so einer » Di 3. Mär 2015, 08:24

Wenn dich die Meldungen wegen multiple defined labels nicht stören:
\documentclass[a4paper]{scrartcl}

\usepackage{pdfpages}
\usepackage{hyperref}


% Inkludiert ein Pdf
\newcounter{pdfPage}
\newcommand* \PDF[1]{  
   \cleardoublepage
   \phantomsection
   \newpage
   \setcounter{pdfPage}{0}        
    \includepdf[pages=-, pagecommand={\phantomsection\refstepcounter{pdfPage}\label{#1.\thepdfPage}\label{#1}}]{#1}    
}


% Seitennummerierung in der Fußzeile mit pageref
\renewcommand*{\pagemark}{{\usekomafont{pagenumber}{%
    Seite \thepage /\ref{PDF1}}}}


\begin{document}
\hyperref[PDF1.1]{Link zur ersten Seite des geladenen PDFs}
\PDF{PDF1}
\end{document}
Allerdings erscheint mit die Angabe n/m im Fuß etwas seltsam, wenn m gar nicht die Gesamseitenzahl des Dokumets, sondern die Gesamtseitenzahl des eingebundenen Dokuments ist. Im Beispiel wirkt das auf der letzten Seite mehr als eigentümlich.

pageref auf letzte Seite eines inkludierten PDF's

von godi » Di 3. Mär 2015, 08:06

Hallo,

ich möchte eine pageref auf die letzte Seite eines inkludierten PDF's (\includepdf) erstellen. Diese Pageref soll in der Fußzeile stehen.

Mein Problem ist, dass ich die Seitenanzahl per Zähler zähle und daraus ein Label erstelle. Jedoch wenn ich einen pageref in der Fußzeile mache dann wird die aktuelle Seite und nicht die letzte Seite referenziert. Was ja irgendwie klar ist, da ja der Zähler gerade zählt.

Hier mein Bsp:
\documentclass[a4paper]{scrartcl}

\usepackage{pdfpages}
\usepackage{hyperref}


% Inkludiert ein Pdf
\newcounter{pdfPage}
\newcommand* \PDF[1]{	
	\cleardoublepage
	\phantomsection
	\newpage
	\setcounter{pdfPage}{0}			
    \includepdf[pages=-, pagecommand={\stepcounter{pdfPage} \label{#1.\thepdfPage}}]{#1}    
}


% Seitennummerierung in der Fußzeile mit pageref 
\renewcommand*{\pagemark}{{\usekomafont{pagenumber}{%
    Seite \thepage /\pageref{PDF1.\thepdfPage}}}}


\begin{document}
\hyperref[PDF1.1]{Link auf PDF erste Seite}\\

\newpage

% Pdf inkludieren
\PDF{PDF1}

\end{document}
Wie bekomme ich es hin, die letzte Seite eines inkludierten pdf's unbekannter Seitenanzahl zu referenzieren?


godi

PS: Im Anhang befindet sich noch ein Test-pdf zum inkludieren.
Dateianhänge
PDF1.pdf
(12.02 KiB) 398-mal heruntergeladen

Nach oben