Поиск/извлечение текста

dimend

10 лет на форуме
Сообщения
16
Реакции
0
Ответ: pdf довести до ума, чтобы работал копипаст и поиск

огромное спасибо, работает! надо мне дружить с форумом, жалею, что пренебрегал.
 

dimend

10 лет на форуме
Сообщения
16
Реакции
0
Ответ: pdf довести до ума, чтобы работал копипаст и поиск

Но не без ошибок перекодирует, к сожалению.
ПСИХОЛОГИЧЕСКАЯ ПОМОЩЬ РОДИТЕЛЯМ АУТИЧНОГО РЕБЕНКА копируется как
ПСИХОЛОГИЧЕСьАЯ ПОМОЩЬ РОДИТЕЛЯМ АУТИЧНОГО РЕБЕНьА
пробовал все 5 вариантов программы.
но всё равно спасибо, это совсем другое дело.
 

dimend

10 лет на форуме
Сообщения
16
Реакции
0
Ответ: pdf довести до ума, чтобы работал копипаст и поиск

Вот попался файл с которым рекодер не справляется совсем. Господа, есть еще идеи? прикладываю страничку.
 

Вложения

  • Pages from_iz_8_knig.pdf
    102.8 КБ · Просм.: 475

dimend

10 лет на форуме
Сообщения
16
Реакции
0
Ответ: pdf довести до ума, чтобы работал копипаст и поиск

т.е., если я правильно понимаю, всё сводится к тому есть ли программы с настраиваемой таблицей перекодирования. Один товарищ сказал, что якобы что-то такое может Foxit pdf editor, но подтверждения не нашёл.
 

suntory

Administrator
15 лет на форуме
Сообщения
23 351
Реакции
12 403
Ответ: pdf довести до ума, чтобы работал копипаст и поиск

В Infix и Gemini вроде есть что-то похожее.

В pdf recode в принципе тоже внутри таблицы, думаю их можно исправить при желании.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
В общем, поскольку автор pdf-recode, как я понимаю, пропал cфорума окончательно, а данная утилита серьезно востребована, попробую сделать краткий тутор по самостоятельной доработке ее под собственные нужды. Сразу признаюсь, что перл я терпеть не могу, более того, это единственная программа, которую мне пришлось ковырять. Но переписывать ее на чем-то более нормальном безумно лениво, к тому же, библиотеки работы с PDFне везде такие удобно-бесплатные, в общем, как говорится, используй то что под рукою, и не ищи себе другое. ;) Как уже писал suntory, исходный код легко получить, распаковав EXEфайл, например, через 7zip. Чтобы собрать исправленную версию, можно даже не заморачиваться с компилятором перла, процесс обратной сборки EXEфайла без компилятора я описал тут.
Теперь по поводу того, что, собственно, менять в самой программе? Для начала определиться, чем, собственно, не устраивает готовая версия pdf-recode, лежащая в форумном обменнике. Вариантов может быть два: 1) программа отказывается перекодировать вообще, выдавая ошибку и 2) перекодирует, но поиск в полученном файле не работает все равно или работает, но некоторые символы кодируются неправильно.
В первом случае, читайте посты выше, как добиться того, чтобы формат PDFфайла стал понятен для pdf-recode. Обычно помогает частичная или полная декомпрессия файла вышеописанными способами. Самые нехорошие случаи – текст в кривых (тут уж ничего не поделаешь, остается расслабиться и получать удовольствие) или шрифт в формате TrueType (этот случай, хотя бы, оставляет возможность конвертирования питстопом)
Если же файл уже благополучно перекодируется, но неправильно, то самое время настраивать программу под себя. Несмотря на упорные попытки 1998 сделать универсальный перекодировщик на все случаи жизни, думаю, это порочный путь, ибо, нельзя объять необъятное и впихнуть невпихуемое. Для начала, нужно определиться, в какой 8битной кодировке, собственно, хранится кириллический текст внутри PDF? Для этого PDFпридется распаковать. Если кодировка текстовых строк cp1251 (маленькая буква “a” имеет код 0xE0, а большая “A” – 0xC0), то для базовой версии перекодировщика годится, стандартный. Однако, возможна и кодировка ASCII (“A”-0x80,”a”-0xA0), как например, в этом случае. Рассмотрим его в качестве примера.
Берем стандартный pdf-recodeиз обменника, открываем его архиватором. В папке libлежит файл cp1251.pl. В нем содержится таблица перекодировки, в которой каждому 8битному коду символа ставится в соответствие юникодный. Ее надо поменять на соответствующую таблицу для кодировки ASCII:
Код:
(
"<00>", "<0000>",
"<01>", "<0001>",
"<02>", "<0002>",
"<03>", "<0003>",
"<04>", "<0004>",
"<05>", "<0005>",
"<06>", "<0006>",
"<07>", "<0007>",
"<08>", "<0008>",
"<09>", "<0009>",
"<0A>", "<000A>",
"<0B>", "<000B>",
"<0C>", "<000C>",
"<0D>", "<000D>",
"<0E>", "<000E>",
"<0F>", "<000F>",
"<10>", "<0010>",
"<11>", "<0011>",
"<12>", "<0012>",
"<13>", "<0013>",
"<14>", "<0014>",
"<15>", "<0015>",
"<16>", "<0016>",
"<17>", "<0017>",
"<18>", "<0018>",
"<19>", "<0019>",
"<1A>", "<001A>",
"<1B>", "<001B>",
"<1C>", "<001C>",
"<1D>", "<001D>",
"<1E>", "<001E>",
"<1F>", "<001F>",
"<20>", "<0020>",
"<21>", "<0021>",
"<22>", "<0022>",
"<23>", "<0023>",
"<24>", "<0024>",
"<25>", "<0025>",
"<26>", "<0026>",
"<27>", "<0027>",
"<28>", "<0028>",
"<29>", "<0029>",
"<2A>", "<002A>",
"<2B>", "<002B>",
"<2C>", "<002C>",
"<2D>", "<002D>",
"<2E>", "<002E>",
"<2F>", "<002F>",
"<30>", "<0030>",
"<31>", "<0031>",
"<32>", "<0032>",
"<33>", "<0033>",
"<34>", "<0034>",
"<35>", "<0035>",
"<36>", "<0036>",
"<37>", "<0037>",
"<38>", "<0038>",
"<39>", "<0039>",
"<3A>", "<003A>",
"<3B>", "<003B>",
"<3C>", "<003C>",
"<3D>", "<003D>",
"<3E>", "<003E>",
"<3F>", "<003F>",
"<40>", "<0040>",
"<41>", "<0041>",
"<42>", "<0042>",
"<43>", "<0043>",
"<44>", "<0044>",
"<45>", "<0045>",
"<46>", "<0046>",
"<47>", "<0047>",
"<48>", "<0048>",
"<49>", "<0049>",
"<4A>", "<004A>",
"<4B>", "<004B>",
"<4C>", "<004C>",
"<4D>", "<004D>",
"<4E>", "<004E>",
"<4F>", "<004F>",
"<50>", "<0050>",
"<51>", "<0051>",
"<52>", "<0052>",
"<53>", "<0053>",
"<54>", "<0054>",
"<55>", "<0055>",
"<56>", "<0056>",
"<57>", "<0057>",
"<58>", "<0058>",
"<59>", "<0059>",
"<5A>", "<005A>",
"<5B>", "<005B>",
"<5C>", "<005C>",
"<5D>", "<005D>",
"<5E>", "<005E>",
"<5F>", "<005F>",
"<60>", "<0060>",
"<61>", "<0061>",
"<62>", "<0062>",
"<63>", "<0063>",
"<64>", "<0064>",
"<65>", "<0065>",
"<66>", "<0066>",
"<67>", "<0067>",
"<68>", "<0068>",
"<69>", "<0069>",
"<6A>", "<006A>",
"<6B>", "<006B>",
"<6C>", "<006C>",
"<6D>", "<006D>",
"<6E>", "<006E>",
"<6F>", "<006F>",
"<70>", "<0070>",
"<71>", "<0071>",
"<72>", "<0072>",
"<73>", "<0073>",
"<74>", "<0074>",
"<75>", "<0075>",
"<76>", "<0076>",
"<77>", "<0077>",
"<78>", "<0078>",
"<79>", "<0079>",
"<7A>", "<007A>",
"<7B>", "<007B>",
"<7C>", "<007C>",
"<7D>", "<007D>",
"<7E>", "<007E>",
"<7F>", "<007F>",
"<80>", "<0410>",
"<81>", "<0411>",
"<82>", "<0412>",
"<83>", "<0413>",
"<84>", "<0414>",
"<85>", "<0415>",
"<86>", "<0416>",
"<87>", "<0417>",
"<88>", "<0418>",
"<89>", "<0419>",
"<8A>", "<041A>",
"<8B>", "<041B>",
"<8C>", "<041C>",
"<8D>", "<041D>",
"<8E>", "<041E>",
"<8F>", "<041F>",
"<90>", "<0420>",
"<91>", "<0421>",
"<92>", "<0422>",
"<93>", "<0423>",
"<94>", "<0424>",
"<95>", "<0425>",
"<96>", "<0426>",
"<97>", "<0427>",
"<98>", "<0428>",
"<99>", "<0429>",
"<9A>", "<042A>",
"<9B>", "<042B>",
"<9C>", "<042C>",
"<9D>", "<042D>",
"<9E>", "<042E>",
"<9F>", "<042F>",
"<A0>", "<0430>",
"<A1>", "<0431>",
"<A2>", "<0432>",
"<A3>", "<0433>",
"<A4>", "<0434>",
"<A5>", "<0435>",
"<A6>", "<0436>",
"<A7>", "<0437>",
"<A8>", "<0438>",
"<A9>", "<0439>",
"<AA>", "<043A>",
"<AB>", "<043B>",
"<AC>", "<043C>",
"<AD>", "<043D>",
"<AE>", "<043E>",
"<AF>", "<043F>",
"<B0>", "<00B0>",
"<B1>", "<00B1>",
"<B2>", "<0406>",
"<B3>", "<0456>",
"<B4>", "<0491>",
"<B5>", "<00B5>",
"<B6>", "<00B6>",
"<B7>", "<00B7>",
"<B8>", "<0451>",
"<B9>", "<2116>",
"<BA>", "<0454>",
"<BB>", "<00BB>",
"<BC>", "<0458>",
"<BD>", "<0405>",
"<BE>", "<0455>",
"<BF>", "<0457>",
"<C0>", "<0410>",
"<C1>", "<0411>",
"<C2>", "<0412>",
"<C3>", "<0413>",
"<C4>", "<0414>",
"<C5>", "<0415>",
"<C6>", "<0416>",
"<C7>", "<0417>",
"<C8>", "<0418>",
"<C9>", "<0419>",
"<CA>", "<041A>",
"<CB>", "<041B>",
"<CC>", "<041C>",
"<CD>", "<041D>",
"<CE>", "<041E>",
"<CF>", "<041F>",
"<D0>", "<0420>",
"<D1>", "<0421>",
"<D2>", "<0422>",
"<D3>", "<0423>",
"<D4>", "<0424>",
"<D5>", "<0425>",
"<D6>", "<0426>",
"<D7>", "<0427>",
"<D8>", "<0428>",
"<D9>", "<0429>",
"<DA>", "<042A>",
"<DB>", "<042B>",
"<DC>", "<042C>",
"<DD>", "<042D>",
"<DE>", "<042E>",
"<DF>", "<042F>",
"<E0>", "<0440>",
"<E1>", "<0441>",
"<E2>", "<0442>",
"<E3>", "<0443>",
"<E4>", "<0444>",
"<E5>", "<0445>",
"<E6>", "<0446>",
"<E7>", "<0447>",
"<E8>", "<0448>",
"<E9>", "<0449>",
"<EA>", "<044A>",
"<EB>", "<044B>",
"<EC>", "<044C>",
"<ED>", "<044D>",
"<EE>", "<044E>",
"<EF>", "<044F>",
"<F0>", "<0401>",
"<F1>", "<0451>",
"<F2>", "<0442>",
"<F3>", "<0443>",
"<F4>", "<0444>",
"<F5>", "<0445>",
"<F6>", "<0446>",
"<F7>", "<0447>",
"<F8>", "<0448>",
"<F9>", "<0449>",
"<FA>", "<044A>",
"<FB>", "<044B>",
"<FC>", "<044C>",
"<FD>", "<044D>",
"<FE>", "<044E>",
"<FF>", "<044F>"
);
После этого неплохо еще закомментировать в основной программы script\pdf-recode.plвсе патчи, сделанные 1998 для обеспечения совместимости со всевозможными национальными кодировками, бо нам они только под ногами путаться будут. В общем, окончательный вариант, уже собранный в EXE Я специально сделал EXEбез компрессии, чтобы; при сильной лени, можно было поправить исходники (в частности таблицу символов) не распаковывая, hex-редактором. Это будет чертовски кстати, когда, к примеру, после перекодировки PDFфайла обнаружится, что некий самостiйный символ перекодировался неправильно: в этом случае достаточно будет (найдя предварительно в PDFвосьмибитный код этого символа) просто влезть в EXEи поставить в соответствие коду этого символа нужный юникод прямо в вышепроцитированной таблице.
 
  • Спасибо
Реакции: Flame

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Прошу прощения за некропостинг, по понятным причинам не мог ответить раньше. ;)
На самом деле дело не только в таблицах (хотя и в них тоже). К примеру, в приложенном файле шрифт встроен в формате Type3, а сам текст в расширенной кодировке ASCII, естественно, перекодировщик с такой засадой не работает принципиально, несмотря на все многочисленные доработки. Предложенный мною вариант со скриптом поиска тут тоже не годится, поскольку адобу данный способ представления текста в PDF, пугает до такой степени, что акробат своему АПИ текст не отдает вообще – говорит, мол, в файле две сотни пустых строк и несколько цифирей. В InfixPDFEditor, действительно, можно посимвольно задать юникод кириллице, но это достаточно муторно, вдобавок, результат все равно получается какой-то странный. Поэтому, несмотря на мою нелюбовь к перлу, пришлось все-таки ковырять программу 1998 (надеюсь, ему она уже пофиг до такой степени, что он простит мне ее изнасилование) Короче говоря, подставив туда напрямую таблицу перекодирования из ASCIIв юникод, получаем искомый PDF, в котором все ищется и копируется нормально. Сам процесс я, дабы не засорять тему, описал тут. Вообще, чтобы не растекаться мысью по древу, я предлагаю модераторам-администраторам объединить эти две темы – зачем нужен этот дубляж? Тем более, подозреваю, тема достаточно актуальная в свете этого и к ней придется не раз возвращаться.
 
  • Спасибо
Реакции: barabanozver и dimend

dimend

10 лет на форуме
Сообщения
16
Реакции
0

Не по теме:
Тема очень даже актуальна, так что зря извиняетесь. Спасибо, изучаем.
 

Коля

Участник
Сообщения
2
Реакции
0
Здравствуйте.

Очень прошу, разбаньте, пожалуйста _MBK_. Или подскажите, как с ним можно связаться.

Есть вопросы по теме, на которые только он сможет ответить.
 

Коля

Участник
Сообщения
2
Реакции
0
Вот пример страницы книги.
При копировании кракозябры. Пример: Ïîýòîìó, ïîëàãàÿ
Пробовал все версии утилиты pdf-recode, не помогают.
Одна отработала, но ничего не изменилось, a остальные сразу говорили "nothing to fix!"

Есть у кого-нибудь какие-то мысли, как с этим справиться?
 

Вложения

  • 85.pdf
    103.2 КБ · Просм.: 860

suntory

Administrator
15 лет на форуме
Сообщения
23 351
Реакции
12 403
Если есть Acrobat, попробуйте Save as PS - Distiller, такой pdf утилита исправляет.
 

ivanvol77

Участник
Сообщения
3
Реакции
0
Акробат 10.0.2
при сохранении из pdf в doc портятся шрифты (см. вложение)
 

Вложения

  • UnEncrypted.pdf
    115.8 КБ · Просм.: 1 402
  • скрин.jpg
    скрин.jpg
    161.6 КБ · Просм.: 736

myscience

Участник
Сообщения
57
Реакции
0
Помогите с кодировкой, тест копируется иероглифами. pdf-recode не
помогло.
Исходный UPLOAD.EE
files/6074751/1805506_vasil_ev_v_p_analiticheskaya_khimiya_kniga_1_titrimetrichesk.pdf.html
А это файл с добавленным белым фоном, под который подсунут
пдф с текстом, рсапознанным ФР (PDF Tools Из Exchange)
UPLOAD.EE - ___01ok.pdf - Закачать
Нужно или вылечить файл №1 или запретить копирование
кракозябр из №2 (но чтоб копировался нормальный текст)
 

LeonidB

Их бин
10 лет на форуме
Сообщения
2 468
Реакции
1 528
При копировании кракозябры. Пример: Ïîýòîìó, ïîëàãàÿ

Не решение проблемы, а просто костыль - но вдруг кому поможет? Макрос для Ворда:

Код:
Sub Uni_to_Asc()

' Преобразование русского текста, представленного в виде Unicode, в ASCII

Dim Asc_Char() As String
Dim AscW_Char() As String

ReDim Asc_Char(255)
ReDim AscW_Char(255)

For i = 128 To 255
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
AscW_Char(i) = ChrW(i)
Asc_Char(i) = Chr(i)
    With Selection.Find
        .Text = AscW_Char(i)
        .Replacement.Text = Asc_Char(i)
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = True
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
Selection.Find.Execute Replace:=wdReplaceAll
Next i

End Sub
 

mr.edu

Участник
Сообщения
4
Реакции
0
Ув. постояльцы форума, прошу прощение за то, что опять поднимаю эту тему. Внимательно изучив все, что было доступно для моего обыденного понимания; воспользовавшись всеми декодерами, все равно испытываю проблему с одним файлом. В нем всего 3 листика, но я никак не могу понять в чем же проблема. Может кто-то может мне помочь. Буду очень благодарен. Собственно, вот сам файл:

http://irbis-nbuv.gov.ua/cgi-bin/ir...OAD=1&Image_file_name=PDF/Unzap_2012_1_67.pdf

Во всех случаях, когда мне нужно было перекодировать старые верстки .pdf журналов, декодер спасал, в этом случае, после перекодировки в pdf-recode251008 пишет ОК!, но при копировании из новосозданного файла текст выглядит следующим образом:
þþþþþþþþþþþþþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ

Все остальные рекодеры пишут: nothing to fix!
Пожалуйста, подскажите, в каком направлении двигаться. Очень нужно получить этот полноценный файл в оригинальном виде. Большое спасибо.
 

mr.edu

Участник
Сообщения
4
Реакции
0

Леонид, спасибо, но распознать текст не проблема, проблема - заменить в нем кодировку.
Распознать я могу любым онлайн ресурсом, или файн-ридером. Но задача не в этом. Необходимо получить такой же .pdf с таким же шрифтом, но возможностью поиска по документу и копирования из него не кизябликов, а текста.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Мне кажется, в вашем файле проблема не из этой, а из этой темы
В любом случае, сделать из него нормальный - героический подвиг, проще все таки распознать *(
 
  • Спасибо
Реакции: lopuh

mr.edu

Участник
Сообщения
4
Реакции
0
Мне кажется, в вашем файле проблема не из этой, а из этой темы
В любом случае, сделать из него нормальный - героический подвиг, проще все таки распознать *(

Не уверен, но проверю. Я все-таки склоняюсь к тому, что проблема в кодировке ((