Mam plik PDF wygenerowany przez stronę trzecią. Próbuję pobrać tekst, ale ani pdf2text
, ani kopiowanie i wklejanie nie daje czytelnego tekstu. Po niewielkim wykopaniu wyjścia (jednego z dwóch) zauważyłem, że każdy znak na ekranie składa się z trzech bajtów. Na przykład "A" to bajty ef
, i 81
. Patrząc na metadane w pliku PDF, który twierdzi, że jest zakodowany w Tożsamości-H, zakładam, że to, co widzę, to zestaw znaków zakodowanych w Tożsamości-H. Mam częściowe mapowanie na podstawie dokumentów, które już posiadam, ale chcę utworzyć bardziej kompletne mapowanie. Aby to zrobić, potrzebuję czegoś w rodzaju tabeli ASCII dla Identity-H.Gdzie mogę odwzorować zakodowane znaki tożsamości-H na znaki ASCII lub Unicode?
Odpowiedz
Nie zawsze jest możliwe wyodrębnienie tekstu z pliku PDF, szczególnie gdy brakuje mapy/ToUnicode wskazanej przez mkl.
Jeśli nie można wyciąć i wkleić poprawnego tekstu z programu Acrobat, wówczas istnieje niewielkie prawdopodobieństwo wyodrębnienia tekstu. Jeśli program Acrobat nie może go wyodrębnić, jest bardzo mało prawdopodobne, aby jakiekolwiek inne narzędzie mogło poprawnie wyodrębnić tekst.
Jeśli ręcznie utworzysz tabelę kodowania, możesz użyć jej do zamiany wyekstrahowanych znaków na ich prawidłowe wartości, ale najprawdopodobniej będzie to działało tylko dla tego jednego dokumentu.
Często robi się to celowo. Widziałem dokumenty, które losowo remapują znaki inaczej dla każdej czcionki w kropce. Jest używany jako forma zaciemniania i jedynym sposobem na wyodrębnienie tekstu z tych plików PDF jest użycie OCR. Istnieje wiele raportów finansowych, które wykorzystują tego rodzaju sztuczkę, aby powstrzymać ludzi przed wyodrębnianiem danych.
Ponadto Identity-H to po prostu odwzorowanie znaków 1: 1 dla wszystkich znaków od 0x0000 do 0xFFFF. to znaczy. Tożsamość to odwzorowanie tożsamości.
Twoim rzeczywistym problemem jest brakujący wpis/ToUnicode w tym pliku PDF. Podejrzewam, że w twoim pliku PDF znajduje się także zagnieżdżona CMap, która wyjaśnia, dlaczego mogą występować 3 bajty na znak.
Więc, w zasadzie muszę zrobić to, co już mam done: sam utworzę mapowanie. Na szczęście wszystkie pliki PDF, które ta agencja produkuje, wykorzystują tę samą konfigurację, więc wątpię, by była ona zamierzona (lub jeśli jest, nie jest zbyt dobra w byciu niejasnym). –
- 1. Jak zamienić znaki Unicode na ASCII
- 2. Jak mogę zamienić znaki Unicode na ASCII w Perlu?
- 3. Jak przekonwertować znaki spoza ASCII zakodowane w UTF8 na równoważnik ASCII w Perlu?
- 4. Niewidoczne znaki - ASCII
- 5. Jak obsługiwać znaki Unicode (spoza zestawu ASCII) w języku Python?
- 6. Jak przekonwertować zakodowane znaki \ xXY na UTF-8 w Pythonie?
- 7. Url Znaki Unicode kodujące
- 8. Czy znaki Unicode i Ascii są takie same?
- 9. Znaki spoza ASCII w Matplotlib
- 10. Znaki ggplot unicode bez Kairu?
- 11. Jak wkleić znaki spoza ASCII do vima?
- 12. Znaki spoza ASCII w C
- 13. Jak konwertować liczbę znaków na znaki ASCII?
- 14. Wizualnie identyczne znaki w Unicode
- 15. Wykryj znaki Unicode w NSString na iPhonie
- 16. Znaki Unicode w skrypcie Ruby?
- 17. wykryj znaki nie ASCII w łańcuchu znaków
- 18. Zamień znaki diakrytyczne na "odpowiednik" ASCII w PHP?
- 19. Jak mogę uczynić gdb drukować niedrukowalne znaki ciągu w języku heksadecymalnym zamiast ósemkowym, zachowując znaki ASCII w formie ASCII?
- 20. Wymiana znaki akcentowane z gładkimi te ascii
- 21. Jakie znaki NIE są obecne w Unicode?
- 22. Jak wprowadzić znaki Unicode w czasie zaćmienia?
- 23. Sprawdź, czy ciąg zawiera tylko znaki ASCII?
- 24. Czy można wydrukować tekst w Unicode lub znaki w MATLAB?
- 25. Czy SHA1 ciągu znaków zawsze zwraca znaki ASCII?
- 26. PHP: Unikodowany znak i znaki diakrytyczne Unicode
- 27. Jak dopasować znaki Unicode do boost :: spirit?
- 28. Jak konwertować znaki specjalne na zwykłe znaki?
- 29. Konwertuj ciąg znaków z kodami ASCII hex na znaki
- 30. Konwertowanie tablicy bajtów zawierających znaki ASCII na ciąg znaków
Nie jest to natychmiastowe rozwiązanie, ale spójrz na dokumenty CID (Identity-H) http://partners.adobe.com/public/developer/en/font/5092.CID_Overview.pdf i http: // www. adobe.com/content/dam/Adobe/en/devnet/font/pdfs/5014.CIDFont_Spec.pdf – borrible
Jeśli masz plik PDF z czcionką używającą tożsamości-h, musisz użyć mapy **/ToUnicode ** w pliku PDF do ekstrakcji tekstu. Cf. Sekcja 9.10.2 Odwzorowywanie kodów znaków na wartości Unicode w ISO 32000-1: 2008. – mkl
Witam, sprawdź moje pytanie dotyczące tego http://stackoverflow.com/questions/22431215/read-japanese-characters-in-a-pdf-file/22489010#22489010 – TacB0sS