PDF ma zniekształcony tekst podczas wklejania kopii

23

Próbuję skopiować i wkleić tekst z pliku PDF.

Jednak za każdym razem, gdy wklejam oryginalny tekst, jest to ogromny bałagan zniekształconych znaków. Tekst wygląda następująco (to tylko jeden mały fragment):

4$/)5=$13! ,4&1*%-! )5'$! 1$2$)&,$40! 65))! .*5)1! -#$! )/'8*/8$03! 
(4/+$6&4;0!/'1!-&&)0!*0$1!.9!/,,)5%/-5&'!1$2$)&,$403!5'!+*%#!-#$! 
0/+$!6/9! -#/-! &,$4/-5'8! 090-$+! 1$2$)&,$40! .*5)1!1$25%$! 1452$40! 
/'1! &-#$4! 090-$+! 0&(-6/4$! %&+,&'$'-0! *0$1! .9! /,,)5%/-5&'! 
1$2$)&,$40!-&1/97!"#$!+5M!&(!,4&1*%-!)5'$!/'1!,4&1*%-!1$2$)&,$40! 
65))! .$!+*%#!+&4$! $2$')9! ./)/'%$13! #&6$2$43! -#/'! -#$!+5M! &(! 
&,$4/-5'8!090-$+!/'1!/,,)5%/-5&'!1$2$)&,$40!-&1/97! 
)*+*+, C<88,?>8513AG<5A14, 

Wypróbowałem to zarówno w czytnikach PDF Adobe, jak i Foxit. Zrobiłem „Zapisz jako tekst” w programie Adobe Reader, a wynikowy plik tekstowy to ten sam zniekształcony tekst.

Masz jakieś pomysły, jak wyciągnąć ten tekst bez zniekształceń? (Inne niż ręczne pisanie ... jest dużo tekstu do wyodrębnienia.)

ngm
źródło
Wypróbuj niektóre narzędzia do odczytu ekranu (które współpracują z JPEG, zrób ekran drukowania i gotowe) lub tutaj jest inny sposób . (Tylko „zgadnij”, nie gryź mnie za to. Użyłem wtedy pierwszej drogi. Mam nadzieję, że są bardziej wygodne sposoby).
Apache
Podobne pytanie: superuser.com/questions/119393/…
Hugh Allen
Mogę również potwierdzić ten problem w systemie OS X, przynajmniej od 10.8.2. Spędziłem trochę czasu, przeglądając strukturę plików PDF, ale niestety nie widzę żadnego sposobu na naprawienie szkód. „PreFlight” programu Acrobat Pro zgłasza problemy z plikiem podczas sprawdzania jego zgodności ze standardem PDF / A, a raport Inventory pokazuje glify odwzorowywane na wyraźnie niepoprawne znaki Unicode. Zgłaszałem błąd w Apple - ID 12655651. Zgłoszę się tutaj, jeśli / kiedy otrzymam jakieś aktualizacje.
KenD
Może być pomocny superuser.com/a/481510/153937
Ankit

Odpowiedzi:

11

Najprostszym sposobem na obejście tego jest otwarcie pliku w najnowszej wersji Google Chrome z wbudowaną wtyczką do czytania plików PDF . Następnie możesz użyć funkcji wyszukiwania Chrome, aby znaleźć tekst, a kopiowanie i wklejanie działa poprawnie.

Chciałbym zagłosować na komentarz pipitas dotyczący odpowiedzi Shiki, ale nie mam odpowiedzi :( Problemem może być niestandardowe kodowanie czcionek, a nie szyfrowanie . W programie Acrobat kliknij opcję Plik -> Właściwości, a następnie kliknij kartę Czcionki, aby wyświetlić kodowanie i kartę Zabezpieczenia, aby sprawdzić, czy jest szyfrowany.

acatalept
źródło
Rzeczywiście, sprawcą było dla mnie niestandardowe kodowanie czcionek. Chrome nie był jednak rozwiązaniem. Rozwiązałem problem częściowo dzięki Ghostscriptowi, który ponownie generował plik PDF z PS (miałem szczęście, że mam źródło PS). Grupy znaków, do których LaTeX stosuje ligatury (np. Ff, c, fi itp.), Nie pojawiają się w skopiowanym tekście pliku PDF, co wymaga edycji podczas kopiowania / wklejania.
Fuhrmanator
1
Ten sam problem z chromem
JinSnow
4

Odkryłem ten problem z utworzonymi przeze mnie plikami PDF i uważam, że wyśledziłem źródło problemu: używając podglądu systemu Mac OS X, aby zmniejszyć rozmiar pliku PDF.

Utworzyłem niektóre filtry kwarcowe za pomocą narzędzia Colorsync do kompresji obrazów w plikach PDF w celu zmniejszenia ogólnego rozmiaru plików PDF z obrazami. Tak jak opisano tutaj: http://www.macosxhints.com/article.php?story=20031106133852693

Odkryłem, że jestem w stanie łatwo skopiować i wkleić tekst z oryginalnego (nieskompresowanego) pliku PDF, ale po uruchomieniu tego pliku PDF przez utworzony przeze mnie filtr Zmniejsz rozmiar pliku, skompresowany plik PDF nie kopiuje się wyraźnie (wygląda jak napisane przez Ciebie ciągi).

Jednak uruchamiając ten sam oryginalny plik PDF za pomocą funkcji Dokument> Adobe Acrobat Pro> Zmniejsz rozmiar pliku, powstały skompresowany plik PDF może z powodzeniem kopiować i wklejać tekst.

Nie jest to więc całkowicie pomocne w twoim przypadku, zakładając, że twój plik PDF został odebrany z innego miejsca i nie możesz dostać się do oryginalnej wersji, jeśli rzeczywiście byłby w jakiś sposób skompresowany. Ale to może być wytłumaczenie - że plik został w jakiś sposób zniekształcony w celu zmniejszenia rozmiaru pliku.

Może to być przydatne dla twórców treści mających podobne problemy z kopiowaniem i wklejaniem tekstu z plików PDF - zachowaj ostrożność, używając filtrów OS X Quartz, aby zmniejszyć pliki PDF!

--edit-- Zauważyłem również ten problem podczas łączenia plików PDF z podglądem. Dwa źródłowe pliki PDF można dobrze skopiować i wkleić, ale podczas przeciągania strony z jednego pliku do drugiego, a następnie zapisywania połączonego pliku PDF, tekstu w połączonym dokumencie nie można skopiować / wkleić. Są to dwa dokumenty generowane jednocześnie z Filemaker Pro 11 na Macu - nie wyobrażam sobie, że miałyby inne kodowanie lub coś podobnego.

Daniel
źródło
Mam kilka plików pdf od użytkownika systemu Mac OS. Wybierz jest w porządku, ale kopiowanie i wklejanie po prostu da ci śmieci. Wypróbuj kilka konwerterów pdf na słowa, w tym googledoc, Adobe Save jako tekst, wszystkie dają zniekształcony tekst.
tigr
Podejrzewam, że winowajcą jest zmniejszenie pliku PDF w systemie OS X. Czy ktoś wie o jakichkolwiek sposobach „cofnięcia” takiej operacji? Dzięki!
tigr
Wydrukowałem plik pdf na kilku (wirtualnych) drukarkach i otrzymałem zawyżone pliki pdf 4x. Drukowany plik jest widoczny jako obraz, nie można dokonać wyboru tekstu, podczas gdy oryginał można wybrać (choć zniekształcony).
tigr
4

Istnieje inny bardzo łatwy sposób na obejście tego problemu :)

Wystarczy wydrukować dokument za pomocą drukarki CutePdf, Adobe 2 Pdf lub podobnej rzeczy. Najważniejsze jest to, że musisz wydrukować do formatu pdf.

W wielu przypadkach łatwo usunie problem.

Nick Olszański
źródło
2

Rozwiązanie, które działało dla mnie:

  • Prześlij dokument na Dysk Google / Dokumenty
  • Google zaimportuje go (od 2013 r.) Jako plik PDF
  • Otwórz widok PDF i wybierz Plik > Otwórz za pomocą > Dokumenty Google
  • Wyeksportowanie dokumentu zajmie około minuty

Wyniki nie były idealne, ale dostałem 80% drogi i dostarczyłem wystarczająco dużo tekstu, że nie musiałem przepisywać wszystkiego!

Gavin Miller
źródło
2

ROZWIĄZANE: (pracował dla mnie w systemie Windows 8, Acrobat XI, Office 2010)

Opcja 1:

  1. Drukuj z programu Acrobat przy użyciu „Microsoft XPS Document Writer” Dane wyjściowe to: „nazwa pliku.oxps”
  2. Otwórz „... oxps” w XPS Viewer. * (patrz link do pobrania w komentarzach poniżej)
  3. Drukuj do PDF (Acrobat PDF lub CutePDF), używając najwyższej rozdzielczości (600 DPI).
  4. Otwórz za pomocą Acrobata i użyj opcji OCR (Searchable Image (Exact)).

BINGO!

Komentarze:

  • Użycie najwyższej rozdzielczości i przeszukiwalnego obrazu (dokładnego) pozwoli zapisać tekst bez utraty czystego wyglądu. Niska rozdzielczość sprawi, że tekst będzie czytelny, ale będzie wyglądał kiepsko.
  • Pobierz Microsoft XPS (pliki): http://www.microsoft.com/en-us/download/details.aspx?id=11816
  • Jeśli nie wiesz, co to jest OCR lub gdzie można znaleźć obraz do przeszukiwania (dokładny), lub jak wydrukować za pomocą „Microsoft XPS Document Writer”, PROSZĘ, Google we własnym zakresie, aby uzyskać najlepsze wrażenia.

* Pobierz tylko, jeśli nie masz zainstalowanego XPS.

Opcja 2:

Zrób podobne, ale zapisz jako obraz (png, tiff, ...), wtedy będziesz musiał połączyć wszystkie strony z powrotem w jednym pliku „PDF”.

użytkownik210118
źródło
1
Kroki 1, 2 i 3 wydają się długą drogą, kiedy możesz po prostu przejść do kroku 3 Drukuj do pliku PDF. (Np. Z wnętrza czytnika plików PDF). Nie trzeba objeżdżać przez XPS.
Hennes
@Hennes Wykonanie kroku 4 powoduje błądAcrobat could not perform OCR on this page because: This page contains renderable text
Fuhrmanator
„renderowalny tekst” brzmi jak coś, co nadal wymaga narysowania (renderowania). Możliwe już to zrobione i zapisane jako mapa bitowa obsługująca OCR, jeśli korzystasz z XPS. Ale to tylko przypuszczenie.
Hennes
1

Istnieje ryzyko, że informacje w ogóle nie będą dostępne. Dokumenty PDF to zasadniczo jeden dokument nałożony na inny, jeden prosty tekst, a drugi obraz. Podczas kopiowania i wklejania z dokumentu zaznaczasz tekst, patrząc na obraz, ale to, co jest kopiowane do schowka, to odpowiedni fragment części tekstowej.

W zależności od sposobu utworzenia dokumentu jakość i dostępność części tekstowej mogą się znacznie różnić. Jeśli dokument edytora tekstu zostanie zapisany w formacie PDF, przy użyciu programu Acrobat, Word, sterownika drukarki PDF lub innej metody, jakość będzie zwykle doskonała, ponieważ plik tekstowy można utworzyć z tekstu oryginału. Niektóre znaki specjalne mogą ulec zniekształceniu, ale zwykły tekst jest zwykle w porządku.

Jeśli dokument jest tworzony na podstawie zeskanowanego obrazu, część tekstowa jest zwykle tworzona przez przetwarzanie obrazu przez OCR, co może dawać raczej żałosne wyniki, szczególnie jeśli oryginał jest mniej niż optymalny do tego celu.

Zły program użyty do utworzenia pliku PDF lub złe ustawienia mogą również spowodować, że część tekstowa zostanie całkowicie zniekształcona, podobnie jak niektóre rodzaje szyfrowania mogą zostać uruchomione na pliku po jego utworzeniu.

Najważniejsze jest to, że jeśli tekstowa część dokumentu jest naprawdę zła, nie ma sposobu, aby ją poprawić. Najlepszym rozwiązaniem byłoby całkowite usunięcie części tekstowej i poproszenie programu o ponowne wykonanie procesu OCR. Myślę, że może to być wykonalne z poziomu programu Acrobat, ale nie jestem do końca pewien.

Emil
źródło
1

Jednym z możliwych powodów może być to, że czcionka osadzona w pliku PDF używała niestandardowego kodowania, które nie jest poprawnie stosowane podczas kopiowania tekstu z pliku PDF.

Możesz zastosować różne metody, aby uchronić się przed ręcznym wpisywaniem całej zawartości.

  1. Czy próbowałeś wyodrębnić tekst za pomocą jednego z narzędzi „pdftotext.exe”, które można pobrać z sieci? (Polecam ten zawarty w ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02pl4-win32.zip ).
  2. Najnowsza wersja programu Acrobat Reader ma opcję „Zapisz jako tekst ...” . To nie używa „kopiuj i wklej” (co dało ci zniekształcony tekst), ale prawdopodobnie używa tych samych procedur oprogramowania, które są używane do renderowania tekstu na ekranie, i może w związku z tym dać więcej użytecznych wyników.
  3. Jeśli „2” nie działa, a jeśli masz dostęp do programu Acrobat Professional: spróbuj ponownie destylować plik PDF przy użyciu jednego z profili Distiller z osadzonymi czcionkami.
  4. Jeśli „3” nie działa, mimo że masz dostęp do programu Acrobat Professional: spróbuj ponownie destylować plik PDF, ale tym razem powinieneś użyć opcji „drukuj jako obraz” (dostępnej za pomocą przycisku „Zaawansowane” w lewym dolnym rogu głównego wydruku dialog). Upewnij się, że używasz 600 dpi (choć może to spowodować powstanie dużego pliku). Wynikowy plik PDF zostanie następnie ponownie otwarty w programie Acrobat Pro. Teraz zastosuj algorytm „OCR” programu Acrobat do pliku, co spowoduje osadzenie tekstu (nieużywanego do renderowania na ekranie w Czytniku, ale do wyszukiwania i podświetlania ciągów). Teraz możesz spróbować ponownie wyodrębnić tekst z tego pliku PDF, korzystając z jednej z omówionych powyżej metod.
Kurt Pfeifle
źródło
Dla mnie użycie Acrobat Pro XI do ponownego wydrukowania do formatu PDF - ale z zaznaczoną opcją „Drukuj jako obraz” (przy 600 dpi) w przycisku / pod-oknie dialogowym Zaawansowane ... w oknie dialogowym Drukuj ... - było podstępem. Następnie możesz w końcu poprawnie OCR wyniku . Żadne inne rozwiązanie wspomniane na tej stronie nie działało. Uwaga: w przypadku dużego dokumentu może to chwilę potrwać, a wynikowy plik PDF może być dość duży.
Glenn Slayden
@GlennSlayden: Cieszę się, że moja rada dla ciebie zadziałała ... Czego w niej brakowało, a myślałeś, że nadal nie zasługuje na głosowanie?
Kurt Pfeifle
Um, głosowałem za. Nadal pokazuje mi się jako „1”. Moją jedyną skargą było to, że twoja odpowiedź była na dole i zajęło mi trochę czasu, aby ją znaleźć (nie twoja wina ...)
Glenn Slayden
Ok, @GlennSlayden, to głosowanie musiało być już dawno temu (na długo przed twoim komentarzem powyżej).
Kurt Pfeifle
Nie, głosowałem „12 godzin temu” w tym samym czasie, gdy napisałem komentarz ... Nadal widzę niebieską strzałkę, co (jak sądzę) oznacza, że ​​mój głos jest (jedynym), który jest aktualnie zarejestrowany. I pamiętam, że było to „0”, zanim wczoraj wieczorem głosowałem.
Glenn Slayden
1

Jeden z moich użytkowników właśnie zgłosił ten sam problem (PDF został utworzony za pomocą Distillera dla Windows), że skopiowany tekst jest tylko zniekształcony i nie mógł przeszukiwać dokumentu. Próbowałem na komputerze Mac i nie znalazłem żadnego problemu. Okazało się, że korzystałem z aplikacji Apple Preview, a on używał Adobe Reader na swoim komputerze z systemem Windows. Potem wypróbowałem Adobe Reader na komputerze Mac i uzyskałem ten sam efekt. Dla mnie wygląda to tak:

  • Adobe Reader przegląda i zapisuje zapisany tekst.

  • Podgląd Apple skopiuje i przeszuka po zastosowaniu wektora kodowania.

Nie mogę tego powiedzieć na pewno, ale to wyjaśniałoby moją obserwację. I rzeczywiście pozwoliłoby to na wszelkiego rodzaju kodowanie podczas zapisywania połączonych / zmniejszonych plików, jak opisano w innym poście tutaj: dzięki Preview możesz nadal wyciągać tekst.

Najpierw pomyślałem, że bardziej logiczne byłoby zakodowanie osadzonego podzbioru czcionek jako ciągłych wpisów zamiast pozostawiania dziur w środku i używania oryginalnej lokalizacji znaków. Ale potem zdałem sobie sprawę, że dzięki zastosowaniu wektora kodującego do podzbioru czcionek z oryginalnymi wpisami często używane znaki mogą mieć mniej bitów ustawionych na 1 w bajcie i mogą być lepiej skompresowane (może obniżyć entropię ogólny tekst w ten sposób).

Reuti
źródło
1

Przesłanie go do dokumentów Google i użycie opcji Widok> Zwykły HTML zapewnia poprawność tekstu do kopiowania do około 80% przy braku odrobiny spacji.

Ten wątek z przyjętym odpowiedź do tej samej kwestii wyjaśnia to z przykładu roboczego.

rev Teqchiqe
źródło
1

Nie wypróbowałem opcji Dokumentów Google, ponieważ nadal nie jest obsługiwana w moim biurze. Jednak drukując plik do „ScanSoft PDF Create!” z „Acrobat 9” (drukuje cały plik do obrazu) i otwierając wydrukowany plik w „Nuance PDF Converter” (pojawiło się pytanie, czy chcę, aby plik obrazu był możliwy do wyszukiwania i edytowania, co wybrałem), byłem w stanie mieć dokument Worda, z którego mogę łatwo skopiować i wkleić. Nie jest to jednak idealne z dokładnością około 80-90%. Ale hej, nadal masz oryginalny plik PDF do porównania i przesunięcia tych części, których po prostu nie można naprawić. Oszczędza czas od pisania całej rzeczy. Mój 2c.

Jhonrie
źródło
0

Zrobiłem kilka plików PDF do edycji ze starą wersją programu Scansoft PDF Converter dla systemu Windows XP, a następnie połączyłem strony w programie Preview dla komputerów Mac. Dla każdej z osobnych stron mogłem poprawnie wyszukiwać, kopiować i eksportować tekst z Adobe Reader na komputerze Mac. Po połączeniu z podglądem i zapisaniu jako jeden plik wszystko wyglądało dobrze na ekranie, ale tylko kilka fragmentów można było poprawnie przeszukiwać / eksportować. Ten problem mnie tu sprowadził.

Posty tutaj dały mi kilka dobrych wskazówek (dziękuję!). Spojrzałem na właściwości pliku czcionek. Pliki jednostronicowe z Win XP (gdzie wszystko jest w porządku) mówiły, że kodowanie to ANSI. Plik połączony w podglądzie (w którym skopiowany tekst jest zniekształcony) pokazywał kodowanie większości czcionek jako „Wbudowane”, a niektóre jako „Roman”.

Rozwiązanie mojego problemu było cały czas pod moim nosem - sam program Scansoft może łączyć pliki. Kiedy użyłem programu łączącego Scansoft i otworzyłem plik na komputerze Mac, wszystkie czcionki były wyświetlane jako kodowane w ANSI, a cały tekst był eksportowany / kopiowany idealnie. Dlaczego na Ziemi nie połączyłem ich w PDF Converter, nie wiem. Dzięki, plakaty!

To samo dotyczy otwierania plików w systemie Linux.

Wiem, że to nie wyjaśnia problemów związanych tylko z systemem Windows - chyba że plik PDF miał podobne mieszane pochodzenie?

Jimbo
źródło