
Я включил pdf в свою задачу по генерации pdf. Возможно ли заменить тексты на кликабельные тексты в моем включенном pdf-файле? Я имею в виду добавить ссылку для текстов. PDF-файл, который я собираюсь сгенерировать, должен содержать эти заменяемые кликабельные тексты. У меня есть массив ссылок, извлеченных из включенного pdf-файла. Мне нужно добавить ссылки для соответствующих текстов.
Array(
[0] => Array(
[text] => Text 1
[href] => http://www.example.com
)
[1] => Array
(
[text] => Text 2
[href] => http://www.example.com
)
)
решение1
Если вы собираетесь реализоватьpdflatexв вашейPHPприложение. для меня это былоcodeignitor.
Шаг 1: установите pdflatex.
Шаг 2: установите pdfannotextractor $ pdfannotextractor --install
в своем терминале
Шаг 3: $ pdfannotextractor --version
это поможет найти версию PDFAnnotExtractor в вашем терминале.
Шаг 4: Но Pdfannotextractor также требует пакет libpdfbox-java. В противном случае мы получим эту ошибку!!! Ошибка: Невозможно найти библиотеку PDFBox!
Шаг 5: Вы можете скачать pdfbox по этой ссылкеhttps://sourceforge.net/projects/pdfbox/files/PDFBox/PDFBox-0.7.3/
Шаг 6: Извлеките zip-файл и скопируйте распакованную папку в свое приложение.
Шаг 7: Следуйте этому коду.
$file = '/home/rebin/Downloads/file.pdf';
$pdflatex = '/usr/local/texlive/2016/bin/x86_64-linux/pdflatex';
$pdf_box = BASEPATH.'PDFBox-0.7.3/lib/PDFBox-0.7.3.jar';
$template_file = 'user/join_template.tex';
$new_pdf_filename = 'new_pdf';
$temp_join_file_path = 'user/';
shell_exec("CLASSPATH='".$pdf_box.":%CLASSPATH%' pdfannotextractor ".$file);
$doc = '\documentclass{article}
\usepackage{hyperref}
\usepackage[left=1cm, right=1cm, top=2cm, bottom=2cm]{geometry}
\usepackage{pdfpages}
\usepackage{pax}
\begin{document}
\includepdf[page=-]{' . $file. '}
\end{document}';
file_put_contents($template_file, $doc);
shell_exec($pdflatex . ' -output-directory=' . $temp_join_file_path . ' -jobname=' . $new_pdf_filename . ' -interaction=nonstopmode -shell-escape join_template.tex');
Ваш PDF-файл будет создан без отсутствующих ссылок.