Я пытаюсь использовать библиотеку reportlab для написания «аннотации» в pdf. Я успешно написал новые данные в pdf с помощью reportlab, но я не могу найти никакой информации о том, как создать аннотацию.Есть ли эквивалент ReportLab для python, называемый функцией «аннотировать» TCPDF?
Когда я говорю аннотацию, я имею в виду аннотационную функцию TCPDF. Это создает интерактивный и подвижный текстовый объект в pdf.
https://tcpdf.org/examples/example_036/
Там должен быть способ сделать это в Python, но до сих пор я не смог найти какую-либо информацию.
Я рассмотрел этот пост и связанные ссылки, опубликованные в принятом ответе.
Add text to existing PDF document in Python
Я видел этот инструмент для использования PHP в Python, но я не могу заставить его работать правильно и это, кажется, не имеют никакой поддержки.
https://github.com/dnet/ppcg/blob/master/tcpdf_example.py
Когда я запускаю пример, который я получаю нечитаемый PDF с текстом показан ниже:
<?
include('tcpdf/config/lang/eng.php');
include('tcpdf/tcpdf.php');
$v0 = new TCPDF('PDF_PAGE_ORIENTATION', 'PDF_UNIT', 'PDF_PAGE_FORMAT', 'true', 'UTF-8', 'false');
$v0->setFontSubsetting(False);
$v0->setAuthor('VSzA');
$v0->setCreator('PPCG');
$v0->setTitle('TCPDF in Python!?');
$v0->setPrintHeader(False);
$v0->setMargins(10, 10);
$v0->AddPage();
$v0->SetFont('dejavusans', 'B', 12);
$v0->Cell(0, 0, 'Hello Python');
$v0->Ln();
$v2 = $v0->GetX();
$v1 = $v0->GetY();
$v0->setXY(30, 30);
$v0->Cell(0, 0, 'GOTOs are bad');
$v3 = $v1 + 2.5;
$v0->setXY($v2, $v3);
$v0->Cell(0, 0, 'I can has PHP variables');
$v0->Output();
?>
Это выглядит как правильный код PHP для создания PDF с помощью TCPDF, но код является сохранен в файле pdf вместо запуска.
Заключение, к которому я пришел сейчас, состоит в том, чтобы просто отправить все мои данные из сценария python на http-сервер, используя php, и создать мой pdf-файл на сервере с использованием TCPDF, а затем отправить новый pdf-файл обратно мой скрипт python, чтобы обслуживать его для конечного пользователя. Это звучит неэффективно, поэтому я бы предпочел не делать этого таким образом.
Любая помощь будет оценена! -Jake
Это действительно полезно, поскольку для аннотации я ищу, чтобы она отображала число вместо этого объекта заметки с записью. Я не могу опубликовать фотографии, но представьте себе простой квадрат с номером внутри него, который все еще движется. Это возможно? В TCPDF было довольно просто –
Это должно быть возможно, так как это в основном «canavas».freeTextAnnotation', который находится в исходном коде, но я не могу заставить его работать прямо сейчас. :((примечание: DA = строка внешнего вида) – B8vrede
Я тоже не мог заставить ее работать. Я также попытался добавить свои собственные словарные поля в функцию freeTextAnnotation и не получил никакого результата. Я смог просто изменить подтип textannotation на «/ FreeText», и теперь это работает для меня. Теперь мой следующий вопрос: как вы отформатируете цвет, если не можете изменить строку «DA»? Нормальные setfillcolor и setstrokecolor не работают для аннотаций. –