Mengekstrak gambar latar belakang dari file PDF?

8

Saya memiliki file PDF yang berisi peta gedung tempat saya bekerja, di sini:

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

File sumber asli telah hilang, dan saya diminta untuk mengekstrak gambar peta, lebih disukai tanpa teks dan ikon yang telah di-overlay di atasnya. Ini terbukti sangat sulit.

Sejauh ini, saya telah mencoba program GUI berikut:

  • Adobe Reader: memungkinkan saya memilih teks, tetapi bukan gambar latar belakang
  • FoxIt PDF Viewer: memungkinkan saya memilih teks, tetapi bukan gambar latar belakang
  • XPDF di Ubuntu 10.10: memungkinkan mes memilih teks, tetapi bukan gambar latar belakang

Dan juga program-program command-line berikut:

  • pdfimages: mengekstrak ikon yang menunjukkan kamar mandi baik-baik saja, tetapi bukan gambar latar belakang
  • pdftohtml: sama seperti pdfimages, ditambah itu membuat dokumen HTML yang ditandai dengan buruk
  • pdfextract: sama seperti pdfimages
  • convert: gambar berhasil disimpan, tetapi dengan teks dibakar ke dalamnya

Saya bahkan sudah mencoba membuka PDF secara manual dalam editor teks dan mengekstraksi objek stream dengan menempelkannya ke file baru dan menyimpannya dengan ekstensi .jpg, .png, atau .bmp (masing-masing pada gilirannya). Mengingat betapa sedikitnya yang saya ketahui tentang struktur internal file PDF, tidak mengherankan bahwa ini tidak berhasil.

Jadi ... apakah ada cara saya dapat mengambil gambar peta dari benda ini tanpa juga mendapatkan teks dan ikon?

Will Martin
sumber
Cara saya biasanya menyelesaikan tugas semacam ini: (1) Gunakan qpdfuntuk mengubah bagian biner menjadi ASCII sejauh mungkin. (2) Gunakan editor teks untuk membuat semua teks tidak terlihat yang tidak ingin saya lihat di layar atau di cetakan (dapat dicapai dengan mudah dan tanpa merusak tabel XRef dengan mengibarkan bendera yang tidak terlihat ). (3) Distilasi ulang hasil dengan Ghostscript untuk mereduksi ukurannya sebanyak mungkin. - Sayangnya, file Anda tidak lagi dapat diunduh untuk menunjukkan prosedur ...
Kurt Pfeifle

Jawaban:

7

Anda dapat mengunduh perpustakaan XPDF dari http://www.foolabs.com/xpdf/download.html untuk Linux dan Windows. Kemudian jalankan pdfimages -j input.pdf outputdan Anda harus mendapatkan output-000.jpg, output-001.jpg, dll Juga, periksa http://linuxcommand.org/man_pages/pdfimages1.html untuk pilihan penggunaan.

mybluevan
sumber
1
Koreksi, sepertinya gambar tersebut adalah grafik vektor yang langsung disematkan dalam PDF. Coba buka di sesuatu seperti Inkscape atau Adobe Illustrator yang menangani grafik vektor.
mybluevan
Ah HA! Peta-peta tersebut adalah grafik vektor - tidak heran saya pernah mengalami masalah seperti itu! Inkscape tampaknya telah membukanya dengan baik, dan saya dapat mengeditnya sesuka hati. Terima kasih!
Will Martin
2

Ok, setelah bermain-main dengan ini selama 5 menit, analisis saya adalah bahwa PDF bahkan lebih aneh dari yang saya kira, dan itu mengatakan sesuatu.

Tidak yakin berapa anggaran Anda, tetapi dengan Acrobat Pro Extended 9, Anda dapat menggunakan:

A. Alat, Pengeditan Lanjutan, Alat Teks Touchup

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

B. Alat, Pengeditan lanjutan, Alat Objek Touchup

-Pilih objek (Anda bisa mendapatkan sebagian besar, tetapi tidak semua, dari mereka (misalnya ikon komputer siswa tidak dapat dipilih), lalu hapus

Seperti apa tampilan Halaman 1 setelah pembersihan cepat: http://dl.dropbox.com/u/7434256/p1test.pdf

Craig H
sumber
Aneh itu meremehkan. Saya tidak tahu sejarah file ini, tetapi Acrobat Pro 8 memberi kami masalah. Inkscape berhasil, terima kasih Tuhan. Sekarang untuk mengkonversi itu semua untuk beberapa SVGs yang tepat bahwa kita dapat menghasilkan grafis raster dari ...
Will Martin
1
Pekerjaan yang Anda lakukan pada PDF asli (yang, sayangnya, tidak lagi tersedia untuk saya) bukan yang terbaik. File Anda masih ~ 3 MByte. Ini berisi banyak + banyak objek yang tidak digunakan. Bahkan berisi instance dari /AAoperator (untuk Tindakan Otomatis ) menjadikannya file PDF yang berpotensi berbahaya. Ghostscript dapat membuatnya hingga 60 kByte tanpa kehilangan konten yang terlihat. (Metadata yang terkandung dalam file tersebar di 17 objek berbeda. Metadata juga menyarankan ada 17 revisi / modifikasi berbeda dari file tersebut sejak dibuat pada 2011-01-18.)
Kurt Pfeifle
@pipitas Saya senang saya memeriksa ini lagi, ternyata Apache turun di server itu. PDF asli tersedia lagi. Ini masih menyebalkan. Sejak itu saya menemukan bahwa peta dihasilkan dari file DXF AutoCAD, yang membuat grafik vektor jelek parah. Ada ratusan jalur individual di setiap peta, masing-masing satu garis dengan dua titik akhir. Ini mungkin membuatnya lebih mudah bagi seorang arsitek untuk mengubah bagian-bagian tertentu dari dinding atau apa pun, tetapi itu adalah rasa sakit di pantat untuk hal lain.
Will Martin
@ Will Martin: Aduh !, ini adalah file PDF agak besar yang berisi banyak pembaruan file internal yang tersembunyi (dan karenanya: sampah dari sudut pandang pengguna). - 16 halaman pada 16 MBytes agak "berat" hanya untuk grafis vektor yang tampak sederhana. Setidaknya 16 lapisan berbeda ("Konten Opsional" dalam bahasa PDF), satu untuk setiap halaman. Saya lebih suka tidak mengarungi kekacauan ini hanya dengan editor teks ...
Kurt Pfeifle
2
@ Pipitas: Terima kasih - poin yang adil. Meskipun saya tidak akan menggambarkan apa yang saya lakukan sebagai "pekerjaan" - saya baru menunjukkan (setelah beberapa menit bermain-main) bahwa itu mungkin dengan Acrobat. Jaminan uang kembali dan semua itu. ;)
Craig H
1

Ambil PDF yang dibuat oleh Craig H dan optimalkan sedikit dengan menjalankannya melalui Ghostscript. Pada Windows, perintahnya adalah:

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

Di Linux / Unix / Mac OS X lakukan:

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

Ini akan menurunkan ukuran file dari 3.000 kByte menjadi sekitar 60 kByte tanpa kehilangan konten. Kemudian mengimpornya ke Inkscape (atau InDesign, Illustrator, ...) harus lebih cepat ....

Kurt Pfeifle
sumber
1

... Anda dapat mencoba Photoshop. Bunyinya PDF, dan itu 'mungkin' itu berasal dari PS dan mungkin masih memiliki lapisan ... tapi itu tembakan yang sangat panjang.

aart12
sumber
0

Dalam lingkungan Linux saya telah menggunakan pdfmod untuk mengekstraksi semua gambar dalam sekali jalan. Lihat https://wiki.gnome.org/Apps/PdfMod atau, untuk pengguna Ubuntu, https://apps.ubuntu.com/cat/applications/pdfmod/

Untuk mengunduh dan menginstalnya di Ubuntu, cukup mengetik sudo apt-get install pdfmod.

  • Mulai GUI pdfmod (ketik di pdfmoddashboard atau terminal baris perintah)
  • Buka dokumen PDF
  • Pilih semua halaman (atau halaman yang ingin Anda ambil gambarnya)
  • Item menu Edit akan menyajikan opsi untuk mengekstraksi sebanyak mungkin gambar yang dapat diekstraksi dalam rentang yang dipilih ( export n images, dengan n nomor yang sesuai). Anda juga dapat mengakses perintah ini dengan mengarahkan mouse Anda pada pilihan dan mengaktifkan menu lokal (klik kanan untuk yang kidal).
  • Setelah Anda melanjutkan ini, jendela baru akan terbuka di mana Anda memilih lokasi untuk menyimpan gambar.

Semoga ini membantu.

XavierStuvw
sumber
Silakan baca Bagaimana saya merekomendasikan perangkat lunak untuk beberapa tips tentang bagaimana Anda harus merekomendasikan perangkat lunak. Berikan lebih dari sekadar tautan, misalnya juga beberapa informasi tambahan tentang perangkat lunak itu sendiri, dan bagaimana informasi itu dapat digunakan untuk menyelesaikan masalah dalam pertanyaan. Anda bahkan dapat memasukkan beberapa contoh baris perintah.
DavidPostill
@ DavidPostill. Terima kasih telah menunjukkan ini. Selesai, saya percaya.
XavierStuvw
Jauh lebih baik ...;)
DavidPostill
Sekarang saya tahu apa yang bisa saya tuntut dari jawaban untuk posting saya :-)
XavierStuvw
-1

Buka dokumen di layar Anda, perbesar gambar untuk membuatnya sebesar mungkin tetapi semuanya masih terlihat. Tekan alt + prnt scrn (atau yang setara pada sistem operasi Anda) dan itu harus mengambil screenshot program. Sekarang buka cat atau editor gambar favorit Anda (photoshop, gimp, dll) tempel di gambar dan memotong apa pun yang tidak Anda inginkan.

Will Gunn
sumber
Ini juga termasuk ikon-ikon yang berada di atas gambar latar belakang dalam gambar-gambar screenshot, plus itu menggunakan resolusi layar. Pasti ada cara yang lebih baik.
Zachiel