Metadaten bei \includepdf

Fragen und Probleme, die nicht den obigen Kategorien zugeordnet werden können


manuf
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Do 24. Aug 2017, 12:54

Metadaten bei \includepdf

Beitrag von manuf »

Hallo zusammen,

mein Problem: Die Metadaten der PDF-Datei, aus der ich per \includepdf Seiten entnehme und in ein anderes Dokument einsetze, sind im Zieldokument sichtbar. Das ist nicht schön. -- Beispiel: Eine PDF-Datei (doc1) mit Metadaten erzeugt durch:
\documentclass{article}
\pdfinfo{
	/Title  (Document 1)
	/Author (John Abruzzi)
}
\begin{document}
 Seite 1 \newpage Seite 2 \newpage Seite 3
\end{document}
Der genaue Inhalt ist nicht relevant; es kommt halt eine PDF-Datei heraus, die in den Metadaten den Titel "Document 1" und den Autor enthält, was von wohl allen PDF-Viewern auch angezeigt wird. Nun binde ich eine Seite dieses PDFs in mein eigentliches "Problemdokument" (doc2) ein:
\documentclass{article}
\usepackage{pdfpages}
\pdfinfo{
	/Title  (Document 2)
	/Author (Gretchen Morgan)
}
\begin{document}
 Page 1 \newpage
 \includepdf[pages={2}]{doc1.pdf}
 \newpage Page 3
\end{document}
Das resultierende PDF enthält in seinen Metadaten den korrekten Titel "Document 2" und den richtigen Autor. ABER: Schaut man sich den binär-Inhalt der doc2.pdf an, sieht man, dass dort die Zeichenketten "Document 1" und "John Abruzzi" aus den Metadaten von doc1 herumliegen. Für ein normales Angucken im PDF-Viewer ist das natürlich egal, aber eine dumme Volltextsuche könnte "John Abruzzi" in doc2.pdf finden, was in diesem Fall nicht gewünscht ist. -- Im konkreten Fall ist das doc1 eine externe Datei, in der man natürlich vor dem Includen z.B. mit Adobe Acrobat die Metadaten verändern bzw löschen könnte, was jedoch in einem immer wiederkehrenden Arbeitsablauf stört.

Ich kann nachvollziehen, dass ein korrektes Reinbasteln von Seiten aus dem einen PDF (doc1) in ein anderes (doc2) einige Metadaten benötigt (Fonts etc). Die erwähnten Textfelder (Titel, Autor, etc) gehören jedoch sicher nicht dazu. Wie also kann ich \includepdf anweisen, diese Metadaten beim Inkludieren nicht sinnlos mit rüberzunehmen?

pdfTeX, Version 3.14159265-2.6-1.40.16 (MiKTeX 2.9 64-bit)
pdfpages 0.5d 2015-09-22 22:01:40


Vielen Dank,
Manuel.

Gast

Beitrag von Gast »

Darauf hat pdfpages keinen Einfluss. Das ist eine Angelegenheit von pdftex oder xetex oder luatex direkt.

Wenn du Metadaten von eingebundenen PDFs nicht haben willst, würde ich empfehlen, die zuvor zu entfernen bzw. durch Leerzeichen zu ersetzen. Dafür benötigt man nicht einmal Adobe Acrobat. Es sollte pdftk (habe ich nicht dahingehend untersucht, würde es aber einfach mal vermuten), sed oder ein Texteditor genügen. Allerdings kann das entfernen der Metadaten auch ein Verstoß gegen die Rechte des Urhebers oder anderer Rechteinhaber sein!

manuf
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Do 24. Aug 2017, 12:54

Beitrag von manuf »

Danke für den Hinweis! Rechteprobleme sind auszuschließen; es handelt sich bei den "doc1"-Dokumenten um automatisch generierte Report-PDFs eines eigenen Systems. Nur ist dieses System (in anderen Zusammenhängen nützlich und notwendig) recht geschwätzig, was die Meta-Daten angeht. Das soll in diesem Fall gefiltert werden - und ich hatte gehofft, die includepdf-Stelle im tex-File wäre dafür geeignet. PDFtk, qpdf und andere scheinen die Originalangaben nicht wirklich aus der Datei zu entfernen - sie schreiben einfach neue (u.U. leere) Felder dazu und deklarieren sie als aktuell (siehe auch hier); anders ist es im PDF-Format wohl recht umständlich. MAT (Metadata Anonymisation Toolkit) wählt einen anderen Ansatz: Hier wird das PDF quasi virtuell gerendert und als neue Datei (mit NUR den neuen Metadaten) gespeichert. Im Prinzip wie einer der virtuellen PDF-Drucker. Werde dies nun also in meinen Prozess einzubauen versuchen ... :)

Den Thread lasse ich noch ca 24h offen, falls jemandem noch etwas einfällt, und setze ihn dann auf erledigt, weil es ja offenbar kein LaTeX-Problem mehr ist.

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

Du kannst sowas versuchen:
\documentclass{article}
\usepackage{pdfpages}
\pdfinfo{
   /Title  (Document 2)
   /Author (Gretchen Morgan)
}
\begin{document}
 Page 1 \newpage
 \pdfsuppressptexinfo=-1
 \includepdf[pages={2}]{testmeta.pdf}
 
 \newpage Page 3

\end{document}

manuf
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Do 24. Aug 2017, 12:54

Beitrag von manuf »

Vielen Dank!

Für Leser mit ähnlichem Anliegen: Im MiKTEX Knowledge-Base-Eintrag zu pdfTeX 1.40.17 (und auch hier) finden sich die Bitmask-Details für \pdfsuppressptexinfo:
% 1 -> PTEX.Fullbanner
% 2 -> PTEX.FileName
% 4 -> PTEX.PageNumber
% 8 -> PTEX.InfoDict (/Producer /Creator /CreationDate /ModDate /Trapped)
So lassen sich u.a. gezielt der Originaldateiname (in obigem Beispiel: "./doc1.pdf") und eben auch die Angaben zu Autor und Titel (auch wenn in der %8-InfoDict-Zeile nicht explizit genannt) der inkludierten Datei aus dem Ziel-PDF fernhalten. - Prima!

(Hinweis, falls "Bitmask" Fremdwort ist: Man summiert einfach die Zahlen, deren zugehörige Infos nicht ins Ziel-PDF sollen. Also z.B. 1+4+8=13, falls alles außer dem Original-Dateinamen weg soll. Dann wird daraus: \pdfsuppressptexinfo=13)

Danke Ulrike!

Antworten