Come estrarre i vettori da un file PDF?


51

Ho un file PDF con immagini vettoriali al suo interno. (L'ho scaricato da Internet, quindi non ho originali.)

Desidero estrarre i vettori in modo da poterli sovrapporre su alcune altre immagini; usali nei supporti di stampa o su un sito Web.

Come estraggo i vettori specifici dal file PDF?

Esiste forse un software in grado di estrarre i vettori da un file PDF? (Preferibilmente gratuito.)


@slhck: intendevo grafica vettoriale . Ho usato Inkscape e funziona come previsto. Puoi per favore inserire il tuo commento come una risposta, in modo che io possa contrassegnarlo come accettato?
Devdatta Tengshe,

Risposte:


49

Puoi usare Inkscape , che è un'applicazione grafica vettoriale gratuita, open source e multipiattaforma. Ti permetterà di importare i file PDF e selezionare i vettori incorporati. È quindi possibile modificarli ed elaborarli come preferisci.

Documentazione dettagliata è disponibile sul sito Web di Inkscape.

Nota che su Linux richiede X11. Esiste anche una versione nativa di Windows.

In alternativa, potresti provare Adobe Illustrator (software a pagamento).


2
Su Linux richiede X11: esiste anche una versione nativa di Windows (che ho usato bene per estrarre un disegno vettoriale da un PDF).
Mark Leighton Fisher,

23

Mentre Inkscape è un modo fantastico per farlo, per coloro che non hanno X11, puoi anche estrarre singole pagine di un PDF in formato SVG usando poppler-utils dalla riga di comando. Ad esempio, per estrarre solo pagina 30:

$ pdftocairo -f 30 -l 30 -svg  somehugemanual.pdf  myextractedpage.svg

Puoi quindi utilizzare il tuo editor vettoriale preferito (il mio è Inkscape) per isolare l'immagine dal testo.

In alternativa, se sei un utente hardcore della riga di comando, puoi estrarre in EPS (Postscript incapsulato) e utilizzare sedper nascondere tutto il testo (che si trova tra BT e ET linee per pdftocairo). Ecco come:

$ pdftocairo -f 30 -l 30 -eps  manual.pdf  - | sed '/^BT$/,/^ET$/ d' > myimage.eps

E, se sei davvero pazzo per evitare di usare X11, puoi persino ridurre il riquadro di delimitazione dell'immagine dalla riga di comando usando il eps2epscomando di Ghostscript :

$ eps2eps myimage.eps myimage-bb.eps

L'ho provato e funziona benissimo. Tuttavia, personalmente, trovo più semplice usare Inkscape.


+1 la tua riga di comando rimuove tutto il testo .. ma sai anche come eliminare tutte le immagini? Sto cercando una soluzione in cui sia rimasta solo la grafica vettoriale :)
clarkk,

Per te funziona? cat foo.eps | sed '/^8 dict dup begin$/,/^Q$/ c Q' > nobitmaps.eps
hackerb9

1
ma è quindi possibile verificare se il file eps ha anche grafica vettoriale? :)
Clarkk,

1
Suppongo che potresti usare eps2eps di Ghostscript per distillarlo nella sua casella di delimitazione più piccola e vedere se è completamente vuoto. Ma questo sta iniziando a diventare una nuova domanda. Sentiti libero di chiedere e sono sicuro che se non rispondo, qualcuno lo farà.
hackerb9

1
@ hackerb9 grazie, ora il file eps è leggibile, ma l'immagine ha una densità molto bassa e del testo rimane ancora intorno. Il pdf è qui e l'immagine è a pagina 7
rtrtrt
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.