Estrarre immagini di sfondo da un file PDF?


8

Ho un file PDF contenente le mappe dell'edificio in cui lavoro, qui:

http://www.libsys.und.edu/dev/FloorPlans_All.pdf

I file di origine originali sono andati persi e mi è stato chiesto di estrarre le immagini della mappa, preferibilmente senza il testo e le icone sovrapposte. Questo si è rivelato fastidiosamente difficile.

Finora ho provato i seguenti programmi di interfaccia grafica:

  • Adobe Reader: mi consente di selezionare il testo, ma non le immagini di sfondo
  • FoxIt PDF Viewer: mi permette di selezionare il testo, ma non le immagini di sfondo
  • XPDF su Ubuntu 10.10: consente di selezionare il testo, ma non le immagini di sfondo

E anche i seguenti programmi da riga di comando:

  • pdfimages: estrae bene le icone che indicano i bagni, ma non le immagini di sfondo
  • pdftohtml: uguale a pdfimages, inoltre crea un documento HTML scarsamente marcato
  • pdfextract: uguale a pdfimages
  • convertire: immagini salvate correttamente, ma con il testo masterizzato in esse

Ho anche provato ad aprire manualmente il PDF in un editor di testo ed estrarre gli oggetti stream incollandoli in un nuovo file e salvandolo con un'estensione .jpg, .png o .bmp (ciascuno a sua volta). Considerando quanto poco so sulla struttura interna dei file PDF, non sorprende che non abbia funzionato.

Quindi ... c'è un modo per recuperare le immagini della mappa da questa cosa senza ottenere anche il testo e le icone?


Il modo in cui di solito risolvo questo tipo di attività: (1) Usare qpdfper convertire il più possibile le parti binarie in ASCII. (2) Utilizzare un editor di testo per rendere invisibile tutto il testo che non voglio vedere sullo schermo o nelle stampe (può essere ottenuto facilmente e senza danni alla tabella XRef attivando la bandiera invisibile ). (3) Ri-distillare il risultato con Ghostscript per ridurne il più possibile le dimensioni. - Sfortunatamente, il tuo file non è più scaricabile per dimostrare la procedura ...
Kurt Pfeifle,

Risposte:


7

Puoi scaricare la libreria XPDF da http://www.foolabs.com/xpdf/download.html per Linux e Windows. Quindi esegui pdfimages -j input.pdf outpute dovresti ottenere output-000.jpg, output-001.jpgecc. Inoltre, controlla http://linuxcommand.org/man_pages/pdfimages1.html per ulteriori opzioni di utilizzo.


1
Correzione, sembra che l'immagine sia una grafica vettoriale direttamente incorporata nel PDF. Prova ad aprirlo in qualcosa come Inkscape o Adobe Illustrator che gestisce la grafica vettoriale.
mybluevan,

Ah HA! Le mappe sono grafiche vettoriali - non c'è da meravigliarsi se ho avuto questi problemi! Inkscape sembra averlo aperto bene e posso modificarlo in base al mio cuore. Grazie!
Will Martin,

2

Ok, dopo aver fatto casino con questo per 5 minuti, la mia analisi è che il PDF è ancora più strano di quanto pensassi inizialmente, e questo sta dicendo qualcosa.

Non sei sicuro di quale sia il tuo budget, ma con Acrobat Pro Extended 9 puoi utilizzare:

A. Strumenti, Modifica avanzata, Strumento testo di ritocco

-Select All
-Right click, Properties
-Text tab
-Select a standard font (e.g. Arial), close
-Hit Delete

B. Strumenti, Modifica avanzata, Strumento oggetto di ritocco

-Seleziona l'oggetto (puoi ottenerne la maggior parte, ma non tutte (ad es. Non è possibile selezionare le icone dei computer degli studenti), quindi eliminare

Ecco l'aspetto della Pagina 1 dopo una rapida pulizia: http://dl.dropbox.com/u/7434256/p1test.pdf


Strano è l'eufemismo. Non conosco la cronologia di questo file, ma Acrobat Pro 8 ci ha dato problemi. Inkscape ha fatto il trucco, però, grazie al cielo. Ora per convertire tutto in alcuni SVG corretti da cui possiamo generare grafica raster da ...
Will Martin,

1
Il lavoro che hai svolto sul PDF originale (che, sfortunatamente, non è più disponibile per me) non è il migliore. Il tuo file è ancora ~ 3 MByte. Contiene molti + molti oggetti non utilizzati. Contiene anche un'istanza /AAdell'operatore (per Azione automatica ) che lo rende un file PDF potenzialmente pericoloso. Ghostscript è stato in grado di ridurlo a 60 kByte senza perdere il suo contenuto visibile. (I metadati contenuti nel file si estendono su 17 oggetti diversi. I metadati suggeriscono anche che ci sono 17 diverse revisioni / modifiche di quel file dalla sua creazione il
18-01-2011

@pipitas Sono contento di averlo verificato di nuovo, si scopre che Apache era inattivo su quel server. Il PDF originale è di nuovo disponibile. Tuttavia è ancora fastidioso. Da allora ho scoperto che le mappe sono state generate da file DXF di AutoCAD, che rendono la grafica vettoriale davvero brutta. Esistono centinaia di percorsi individuali in ciascuna mappa, ognuno una linea singola con due punti finali. Ciò probabilmente ha reso più semplice per un architetto l'alterazione delle singole sezioni del muro o altro, ma è una seccatura per qualsiasi altra cosa.
Will Martin,

@Will Martin: Ahi !, questo è un file PDF piuttosto grande che contiene molti aggiornamenti di file interni nascosti (e quindi: immondizia dal punto di vista dell'utente). - 16 pagine su 16 MBytes sono piuttosto "pesanti" per una grafica vettoriale dall'aspetto semplice. Almeno 16 diversi livelli ("Contenuto opzionale" in formato PDF), uno per ogni pagina. Preferirei non superare questo casino solo con un editor di testo ...
Kurt Pfeifle,

2
@pipitas: grazie - punti giusti. Anche se non avrei descritto quello che ho fatto come un "lavoro", stavo solo dimostrando (dopo un paio di minuti di gioco) che era possibile con Acrobat. Garanzia di rimborso e tutto il resto. ;)
Craig H,

1

Prendi il PDF creato da Craig H e ottimizzalo un po 'eseguendolo tramite Ghostscript. Su Windows la riga di comando è:

gswin32c.exe ^
   -o p1test-gs-optimized.pdf ^
   -sDEVICE=pdfwrite ^
   -dPDFSETTIINGS=/prepress ^
    p1test.pdf

Su Linux / Unix / Mac OS X fare:

gs \
   -o p1test-gs-optimized.pdf \
   -sDEVICE=pdfwrite \
   -dPDFSETTIINGS=/prepress \
    p1test.pdf

Ciò ridurrà la dimensione del file da 3.000 kByte a circa 60 kByte senza perdere il contenuto. Quindi importarlo in Inkscape (o InDesign, Illustrator, ...) dovrebbe essere molto più veloce ....


1

... potresti provare Photoshop. Legge i PDF, ed è "possibile", ha avuto origine in PS e probabilmente ha ancora i livelli ... ma è un gioco molto lungo.


0

In un ambiente Linux ho usato pdfmod per estrarre tutte le immagini in una volta sola. Vedi https://wiki.gnome.org/Apps/PdfMod o, per gli utenti Ubuntu, https://apps.ubuntu.com/cat/applications/pdfmod/

Per scaricarlo e installarlo su Ubuntu, è sufficiente digitare sudo apt-get install pdfmod.

  • Avvia la GUI di pdfmod (digita nella pdfmoddashboard o nel terminale della riga di comando)
  • Apri il documento PDF
  • Seleziona tutte le pagine (o qualsiasi da cui desideri estrarre le immagini)
  • La voce di menu Modifica presenterà l'opzione di estrarre tutte le immagini che possono essere estratte nell'intervallo selezionato ( export n images, con n il numero appropriato). È inoltre possibile accedere a questo comando passando con il mouse sulla selezione e attivando il menu locale (fare clic con il tasto destro del mouse per la mano destra).
  • Una volta che vai avanti con questo, si aprirà una nuova finestra in cui selezionare la posizione in cui salvare le immagini.

Spero che questo ti aiuti.


Si prega di leggere Come posso raccomandare il software per alcuni suggerimenti su come dovresti raccomandare il software. Fornisci più di un semplice link, ad esempio alcune informazioni aggiuntive sul software stesso e su come può essere utilizzato per risolvere il problema nella domanda. Potresti anche includere alcune righe di comando di esempio.
DavidPostill

@DavidPostill. Grazie per averlo segnalato. Fatto, credo.
XavierStuvw,

Molto meglio ...;)
David Post

Ora so cosa posso chiedere dalle risposte ai miei post :-)
XavierStuvw,

-1

Apri il documento sullo schermo, ingrandisci l'immagine per ingrandirla il più possibile, ma tutto è ancora visibile. Premi alt + prnt scrn (o l'equivalente sul tuo sistema operativo) e dovrebbe prendere una schermata del programma. Ora apri la vernice o il tuo editor di immagini preferito (photoshop, gimp, ecc.) Incolla l'immagine e ritaglia tutto ciò che non vuoi.


Ciò include anche le icone che si trovano sopra l'immagine di sfondo nelle immagini schermate, oltre a utilizzare la risoluzione dello schermo. Deve esserci un modo migliore.
Zachiel,
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.