Вы, вероятно, уже знаете это, но PDF-файлы имеют индекс в конце, который содержит смещения байтов для всего документа. Если вы редактируете документ вручную, вы должны убедиться, что новый текст содержит столько же символов, сколько и оригинал.
Если вы хотите извлечь содержимое страницы PDF и отредактировать его, это довольно просто. Моя CAM :: PDF библиотека позволяет вам делать это программно или через командную строку:
use CAM::PDF;
my $pdf = CAM::PDF->new($filename);
my $page_content = $pdf->getPageContent($pagenum);
# ...
$pdf->setPageContent($pagenum, $page_content)l
$pdf->cleanoutput($out_filename);
или
getpdfpage.pl in.pdf 1 > page1.txt
setpdfpage.pl in.pdf page1.txt 1 out.pdf