Обычно это немного сложно, потому что в файлах PDF есть информация о том, где размещать строки текста. Если вы хотите добавить предложение, вам придется вручную переместить остальную часть текста в нужные места, чтобы оно работало. Однако, если вы хотите изменить только слово, и, как вы говорите, это можно сделать, изменив текст в редакторе, вы можете использовать простую замену.
Я взял небольшой фрагмент образца PDF в проиллюстрируйте:
import re
s = '''BT
/F1 0010 Tf
69.2500 628.8480 Td
( And more text. And more text. And more text. And more text. And more ) Tj
ET
BT
/F1 0010 Tf
69.2500 616.8960 Td
( text. And more text. Boring, zzzzz. And more text. And more text. And ) Tj
ET
BT
'''
changed_s = re.sub('text', 'NOT-TEXT', s)
После этого фрагмента changed_s
все вхождения «текста» будут заменены на «НЕ-ТЕКСТ».
Чтобы применить это к файлу, вы можете сделать что-то вроде это:
import re
# Read from file
# Even better: SVG or illustrator file
with open('filename.pdf', 'r') as f:
file_text = f.read()
# Perform substitution
changed_text = re.sub('to-change', 'change-to', file_text)
# Write to file
with open('outfile.pdf', 'w') as f:
f.write(changed_text)
Вы можете прочитать о re.sub
, если вам нужно найти и заменить более сложное.