PDF::API2 имеет много функциональности, но он чрезвычайно эзотерический. Я нашел документацию очень сложной для получения необходимой информации. Вы должны получить все «как раз», чтобы PDF был правильно отображен, и, как если бы ваши требования менялись, он имеет эффект каскада на ваш существующий код, чтобы все было хорошо. Например, вставка одного элемента в определенном месте может означать, что вам нужно перерасчитать позиции всех остальных элементов, отображаемых на этой странице, вплоть до одноточечной точности, в зависимости от того, как вы используете API.
В результате мы довольно недавно отказались от решения, использующего PDF :: API2, и вместо этого вместо этого вместо этого начали генерировать HTML-код, который затем преобразовали в PDF с помощью внешнего инструмента. Есть несколько хороших бесплатных, например PDF::FromHTML, как предложил Синан Юн. Есть также некоторые более функциональные коммерческие, если вы хотите получить представление о своем HTML и хорошо перевести его в PDF (хотя я не использовал их лично).
Если вам нужно сделать некоторые простые манипуляции с существующими PDF-файлами, а не генерировать их, я бы использовал (и действительно использовал) CAM::PDF.
Короче говоря, я не рекомендую PDF :: API2, если вы не хотите потратить много времени на выяснение всех своих тонкостей и лично поддерживать ваше приложение в будущем. Он чрезвычайно мощный и многофункциональный, но если вы точно не знаете, что делаете, отсутствие документации и примеров будет мешать вам больше, чем помогает модуль.
Если вы легко испугались, сделайте * не * посмотрите на источник PDF :: FromHTML. – ysth
Да, но использование модуля не было страшным опытом. –
PDF :: FromHTML не работает, потому что текст на иврите перемещается слева направо, а не справа налево. И это делается в HTML через CSS и PDF :: FromHTML не делает CSS. – mpeters