{"id":598,"date":"2011-02-22T03:10:45","date_gmt":"2011-02-22T02:10:45","guid":{"rendered":"https:\/\/blog.craue.de\/christian\/?p=598"},"modified":"2011-02-22T11:43:17","modified_gmt":"2011-02-22T10:43:17","slug":"unerwuenschte-metadaten-aus-durch-pdftex-generierter-pdf-datei-entfernen","status":"publish","type":"post","link":"https:\/\/blog.craue.de\/christian\/2011\/02\/22\/unerwuenschte-metadaten-aus-durch-pdftex-generierter-pdf-datei-entfernen\/","title":{"rendered":"unerw\u00fcnschte Metadaten aus durch pdfTeX generierter PDF-Datei entfernen"},"content":{"rendered":"<p>Ich wurde zuf\u00e4llig darauf aufmerksam, dass, wenn man in ein mit LaTeX erstelltes Dokument bereits existierende PDF-Dateien (die z. B. Grafiken enthalten) einbindet und dieses LaTeX-Dokument mithilfe von pdfTeX (das auch Bestandteil von MiKTeX ist) als PDF-Datei ausgegeben wird, in dem Resultat die vollst\u00e4ndigen Pfadangaben zu den eingebundenen PDF-Dateien enthalten sind. Das kann dann folgenderma\u00dfen aussehen:<\/p>\n<pre>\/PTEX.FileName (A:\/Masterarbeit\/bilder\/diagramm.pdf)<\/pre>\n<p>Im Rahmen der Weitergabe oder gar Ver\u00f6ffentlichung wird sicherlich nicht jeder wollen, dass das Dokument solche Informationen preisgibt.<\/p>\n<p>Durch einen <a title=\"Patch f\u00fcr pdfTeX\" href=\"http:\/\/sarovar.org\/tracker\/index.php?func=detail&amp;aid=846&amp;group_id=106&amp;atid=495\" target=\"_blank\">Patch<\/a> (siehe auch <a title=\"Diskussion in der pdfTeX-Mailingliste zu PTEX\" href=\"http:\/\/www.tug.org\/pipermail\/pdftex\/2007-August\/007290.html\" target=\"_blank\">Diskussion in der pdfTeX-Mailingliste<\/a>) soll sich dieses Verhalten ab Version 1.50 von pdfTeX mittels <code>\\pdfsuppressptexinfo<\/code> steuern lassen. Da jedoch in der momentan aktuellen Version 2.9 von MiKTeX noch eine 1.40er-Version enthalten ist, brauchen Ungeduldige eine andere L\u00f6sung. Nach etwas Recherche fand ich <a title=\"pdftk\" href=\"http:\/\/www.pdflabs.com\/tools\/pdftk-the-pdf-toolkit\/\" target=\"_blank\">pdftk<\/a>, mit dem sich PDF-Dateien zur weiteren Verarbeitung zumindest de- und komprimieren lassen. Der Vorgang gestaltet sich folgenderma\u00dfen:<\/p>\n<ol>\n<li>PDF-Datei dekomprimieren<\/li>\n<li>PTEX-Attribute entfernen<\/li>\n<li>PDF-Datei komprimieren<\/li>\n<\/ol>\n<p>Ich nutze daf\u00fcr also pdftk und PHP in diesen drei Schritten, um die PTEX-Attribute sauber mithilfe eines regul\u00e4ren Ausdrucks zu entfernen:<\/p>\n<pre>pdftk originaldatei.pdf output uncompressed.pdf uncompress\r\nphp -n -r \"file_put_contents('cleaned.pdf', preg_replace('|^\/PTEX.*\\n|imU', '',\r\n\t\tfile_get_contents('uncompressed.pdf')));\"\r\npdftk cleaned.pdf output zieldatei.pdf compress<\/pre>\n<p>(Der Aufruf von PHP muss dabei <u>in einer Zeile<\/u> erfolgen.)<\/p>\n<p>Die Datei &#8222;zieldatei.pdf&#8220; ist die nun bereinigte Fassung des Dokuments. Die zwischendurch entstandenen Dateien &#8222;uncompressed.pdf&#8220; und &#8222;cleaned.pdf&#8220; sind irrelevant, sofern man die einzelnen Schritte nicht nachvollziehen bzw. kontrollieren will.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ich wurde zuf\u00e4llig darauf aufmerksam, dass, wenn man in ein mit LaTeX erstelltes Dokument bereits existierende PDF-Dateien (die z. B. Grafiken enthalten) einbindet und dieses LaTeX-Dokument mithilfe von pdfTeX (das auch Bestandteil von MiKTeX ist) als PDF-Datei ausgegeben wird, in dem Resultat die vollst\u00e4ndigen Pfadangaben zu den eingebundenen PDF-Dateien enthalten sind. Das kann dann folgenderma\u00dfen [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[165],"tags":[225,243,224],"_links":{"self":[{"href":"https:\/\/blog.craue.de\/christian\/wp-json\/wp\/v2\/posts\/598"}],"collection":[{"href":"https:\/\/blog.craue.de\/christian\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.craue.de\/christian\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.craue.de\/christian\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.craue.de\/christian\/wp-json\/wp\/v2\/comments?post=598"}],"version-history":[{"count":0,"href":"https:\/\/blog.craue.de\/christian\/wp-json\/wp\/v2\/posts\/598\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.craue.de\/christian\/wp-json\/wp\/v2\/media?parent=598"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.craue.de\/christian\/wp-json\/wp\/v2\/categories?post=598"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.craue.de\/christian\/wp-json\/wp\/v2\/tags?post=598"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}