PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Aus einer PDF-Datei nur den eigentlichen Inhalt einfügen



Paul Schreber
05-11-2010, 09:49
Hallo zusammen,

gelegentlich habe ich es mit PDF-Dateien zu tun, die eine Vektorgrafik enthalten. Diese möchte ich in mein TeX-Dokument einfügen -- alles kein Problem mit \includegraphics, jedoch füllt in den PDF-Dateien die eigentliche Grafik meist nicht die volle Seitengröße (i.d.R. A4) aus, sondern ist nur wenige Zentimeter groß. Ich erhalte also mit \includegraphics erwartungsgemäß eine kleine Grafik mit dem kompletten Leerraum drumherum.

Gibt es eine Möglichkeit, dass TeX beim Import der Vektorgrafik den Raum drumherum ignoriert, also wirklich nur die eigentliche Grafik ohne den Leerraum einfügt?

Workarounds gäbe es einige: ich weiß, wie ich manuell eine bb beim Import erzeuge, und ich könnte alle Grafiken nochmal durch Inkscape jagen, wo es beim PDF-Export die Option "Export area is drawing" gibt. Wirkliche Lösungen sind das aber natürlich nicht...

vielen Dank für jeden Hinweis!

PS:


\begin{filecontents}{boundingboxabc.tex}
%ich brauche natürlich einen Extralauf
\documentclass[paper=a6,landscape]{scrartcl}
\usepackage{graphicx}
\pagestyle{empty}
\begin{document}
\Huge ABC
\end{document}
\end{filecontents}

\documentclass{scrartcl}
\usepackage{graphicx}
\pagestyle{empty}
\begin{document}
die Buchstaben sollten die volle Zeilenbreite ausfuellen\\
\hrule
\includegraphics[width=\textwidth]{boundingboxabc.pdf}
\end{document}

u_fischer
05-11-2010, 10:02
Siehe grfguide Stichworte viewport, trim, clip. Ich würde aber eher pdfs in der richtigen Größe erzeugen, entweder nachträglich mit z.B. pdfcrop oder - am besten - direkt bei der Erstellung.

Paul Schreber
06-11-2010, 18:17
Hallo Ulrike,

vielen Dank für den Hinweis... die entsprechenden features kannte ich diffus bereits, aber, IIRC, dort geht es immer nur um das manuelle Beschneiden. Ich wäre weiterhin derjenige, der wissen muss, wo die Grafik aufhört und das Nichts anfängt (gilt auch für pdfcrop, wenn ich das richtig sehe, oder?). Meine Hoffnung war, dass es eine Möglichkeit gibt, mit der sich TeX den Ausschnitt selbst raussucht. Aber es stimmt schon, letztlich ist es definitiv schlauer, von vornherein nur mit Grafiken zu arbeiten, deren Papierformat nur so groß ist wie nötig...

rstuby
06-11-2010, 19:07
bei bdfcrop gibst du die Größe der weißen Ränder an. Wenn du 0,0,0,0 angibst, wird die Grafik doch "selbst rausgesucht", oder habe ich dich nicht verstanden?

mechanicus
06-11-2010, 19:13
bei bdfcrop gibst du die Größe der weißen Ränder an. Wenn du 0,0,0,0 angibst, wird die Grafik doch "selbst rausgesucht", oder habe ich dich nicht verstanden?

pdfcrob brauch gar keine Randangaben. Ich bin mit dem Ergebnis auch so zufrieden. Allerdings benötigst du für pdfcrop perl.

Gruß
Marco

Paul Schreber
06-11-2010, 20:14
stimmt, jetzt wo ich's mir nochmal angeschaut habe... pdfcrop ist besser, als ich es in Erinnerung hatte. Ein klein bisschen Weiß bleibt auch bei "0 0 0 0"-Rand, aber damit lässt sich arbeiten. Vielen Dank!

dresdner
01-02-2011, 14:24
Hi,

ich mühe mich gerade mit pdfcrop. Allerdings läuft es nicht.
Installiert habe ich ActivePerl sowie über den MikTex Package Manager pdfcrop. Allerdings komme ich nun mit Perl nicht klar. Kann mir bitte mal einer idiotensicher die nächsten Schritte erklären. :cool: Merci.

Tux
01-02-2011, 15:21
Hi dresdner,

eigentlich gibt's nichts was du sonst noch manuell konfigurieren müsstest.

ActivePerl fügt normalerweise bei der Installation den entsprechenden Eintrag in der Pfad-Variable hinzu (z.B. "C:\Program Files\Perl\bin" bei mir).

Dann solltest Du direkt von der Konsole pdfcrop starten können (z.B. "C:\Program Files\MiKTeX 2.9\miktex\bin\pdfcrop.exe").
Am besten (falls nicht schon geschehen) noch den Pfad von MiKTeX zur Pfad-Variable hinzufügen (also z.B. "C:\Program Files\MiKTeX 2.9\miktex\bin"), dann kannst du pdfcrop aus jedem Verzeichnis direkt aufrufen mit "pdfcrop.exe"

bobmalaria
01-02-2011, 15:42
hi,

ob pdfcrop funktioniert kannst du ganz einfach ausprobieren.

oeffne die eingabeaufforderung in windows (bei zubehoer zu finden oder wenn man windowstaste+R drueckt und dann cmd eingibt).

dort einfach mal:

pdfcrop eingeben. wenn es geht kommt sowas in der art


PDFCROP 1.31, 2010/09/17 - Copyright (c) 2002-2010 by Heiko Oberdiek.
Syntax: pdfcrop [options] <input[.pdf]> [output file]
Function: Margins are calculated and removed for each page in the file.
Options: (defaults:)

wenn nicht, kommt "befehl unbekannt" oder so aehnlich.

sollte letzteres passieren dann musst du perl in den suchpfad des systems hinzufuegen.
bei XP geht das in systemsteuerung->system und da gibt es einen eintrag "umgebungsvariablen" im Tab "Erweitert".
Dort gibt es schon eine variable die PATH heisst. diese kannst du bearbeiten und einfach
den pfad zu perl hinzufuegen (getrennt durch einen ;)

"C:\anderes\Programm";"C:\Programme\ActivePerl\bin"

PATH ist dafuer da, das man ein programm ueberall auf dem system finden kann. du koenntest auch den ordner in dem sich z.b. deine firefox.exe befindet in den PATH einfuegen und dann koettest du in der eingabeaufforderung von jedem ordner aus firefox.exe eingeben und der browser wuerde sich oeffnen.

Fuer pdfcrop braucht man das da die pdfs die man beschneiden will ja in verschiedenen ordern sind und man moechte das zuschneiden ja in diesem ordner direkt durchfuehren ohne die dateien an einen anderen ort kopieren zu muessen.

gruss

dresdner
01-02-2011, 15:57
ActivePerl fügt normalerweise bei der Installation den entsprechenden Eintrag in der Pfad-Variable hinzu (z.B. "C:\Program Files\Perl\bin" bei mir).

Schon dieser Eintrag ist bei mir nicht vorhanden. :confused:

Installiert habe ich die Version 5.12.2.1203 von dieser Seite: http://www.activestate.com/activeperl/downloads

Was ist da verkehrt?

dresdner
01-02-2011, 15:59
hi,

ob pdfcrop funktioniert kannst du ganz einfach ausprobieren.

oeffne die eingabeaufforderung in windows (bei zubehoer zu finden oder wenn man windowstaste+R drueckt und dann cmd eingibt).

dort einfach mal:

pdfcrop eingeben. wenn es geht kommt sowas in der art



Merci.
Da kommt bei mir als Antwort: "The Perl interpreter could not be found".

bobmalaria
01-02-2011, 16:10
hi,

dann fehlt das hinzufuegen des pfades zu deiner active-perl installation zu PATH. lies dir nochmal meinen beitrag von oben durch.

wenn du es lieber grafisch moechtest kannst du dir unabhaengig davon auch mal briss (http://sourceforge.net/projects/briss/) ansehen

gruss

dresdner
02-02-2011, 12:20
Ok, danke für die Hinweise. Ich habe alles wie beschrieben umgesetzt.

Gebe ich nun pdfcrop.exe in die Eingabezeile des Windows-Explorers öffnet sich ein DOS-Fenster, allerdings nur für den Bruchteil einer Sekunde.

Öffne ich über Start/Ausführen/cmd und dann pdfcrop.exe, kann ich mit pdfcrop.exe arbeiten nachdem ich in das Verzeichnis der zu bearbeitenden Datei springe.

Geht das nicht auch komfortabler?

dresdner
02-02-2011, 12:24
Ich habe gleich noch ein zweites Problem: per Visio erstellte PDFs werde so sehr schön zugeschnitten. Anders sieht es bei mit Origin erstellten PDFs aus. Hier werden nur 2 der 4 Seiten beschnitten.

Habt ihr eine Idee woran das liegen könnte?

bobmalaria
02-02-2011, 13:25
hi,

visio und origin sind ******. pdfs sind (oft) nicht konform zur norm, was die beiden hersteller der programme da machen weiss keiner. als workaround hilft es eventuell das pdf nochmal per pdf-drucker in ein neues pdf zu drucken und dann versuchen dieses zu beschneiden. aus origin hilft eventuell direktes drucken in einene pdf-drucker.

auch ein pdf2ps und dann ps2pdf koennte helfen.

zur vereinfachung des pdfxrop aufrufes kannst du dir einen eintrag ins rechtsklickmenue hinzufuegen (http://www.tech-recipes.com/rx/232/right-click-to-open-a-command-prompt/)

dann oeffnest du den ordner mit den pdfs, klickst rechts und kannst eine kommandozeile oeffnen die direkt im aktuellen ordner ist. dann kann direkt pdfcrop datei.pdf eingegeben werden.

gruss

dresdner
02-02-2011, 15:02
als workaround hilft es eventuell das pdf nochmal per pdf-drucker in ein neues pdf zu drucken und dann versuchen dieses zu beschneiden.

Das hat tatsächlich geholfen. Danke. Da muss man aber erst mal drauf kommen. :o