2012-05-23 3 views
1

Я хочу изменить PDF-документ с помощью PHP. Я нашел библиотеки FPDF и FPDI, которые позволяют создавать и изменять файлы PDF. Вот мой очень простой код:Изменение PDF и повторное использование встроенного шрифта

<?php 
require_once('include/fpdf.php'); 
require_once('include/fpdi.php'); 

// initiate FPDI 
$pdf = new FPDI(); 
// add a page 
$pdf->AddPage(); 
// set the sourcefile 
$pdf->setSourceFile('input.pdf'); 
// import page 1 
$page1 = $pdf->importPage(1); 
// insert the page 
$pdf->useTemplate($page1); 

// now write some text above the imported page 
$pdf->AddFont('calibri'); 
$pdf->SetFont('calibri','',11); 
$pdf->Write(0, "This is just a simple text"); 

header("Content-Type: application/pdf"); 
$pdf->Output(); 

Это работает очень хорошо, но я вижу, что вставленный текст добавляет что-то вроде ссылки на системный шрифт вместо уже встроенного шрифта. Как я могу просто повторно использовать встроенный шрифт?

Если это невозможно с помощью этой библиотеки, не стесняйтесь указывать мне третью бесплатную библиотеку lib.


Я знаю, что могу использовать только символы, которые уже используются, но это не проблема в моем специальном случае. Я проверил, что все возможные символы используются в правильной чувствительности к регистру.

ответ

5

Бьюсь об заклад, ваш встроенный шрифт с импортированной страницы PDF не называется calibri. (Только однократное написание шрифтов в PDF-файлах встречается очень редко.)

И я также поспорил, что PDF не будет иметь Calibri в виде полного набора. Скорее всего, это подмножество. И как подмножество, то имя_шрифт будет состоять из случайных 6 букв верхнего регистра префикса + исходного имя шрифта, как это:

AXBTZV+Calibri 

Вы должны найти, что точное имя и попытаться с этим. (Тем не менее, я не уверен, как работает ваша PHP-библиотека, если она может это сделать вообще, и если она будет обрабатывать модификацию текстового текста PDF-кода правильным способом. Дайте мне возможность PDF и я, скорее всего, сделаю это в текстовом редакторе, хотя ...)

+1

Это интересно. Теперь я должен проверить, какие случайные символы. +1 за намек. – rekire

+1

Вы правы, шрифт называется QQASDX + Calibri. Я завтра проведу, как его использовать. – rekire

0

Повторное использование шрифтов в PDF-файлах в основном невозможно, поскольку хранятся только символы, которые используются в PDF-файле. Поэтому, если вы никогда не использовали прописную букву W в своем PDF-шаблоне и хотите добавить текст с ней, то ее невозможно отобразить.

Это не отвечает на ваш вопрос, а говорит, что вы не должны его вообще пытаться.

+1

Я знаю это, но это не проблема в моем пространственном корпусе. Мне просто нужно добавить некоторые цифры, которые уже есть где-то в тексте. – rekire

+0

Как ответ «не ответ», это должен был быть комментарий. Если бы ваш ответ включал инструкции о том, как перерабатывать символы, которые существуют в этом шрифте, конечно, это было бы иначе. FYI: Я только частично согласен с вами, так как можно встроить весь шрифт, а не только буквы. В конце концов, вы дали совет не решение, которое должно было быть комментарием вместо ответа. Хорошие детали, но неполные. ИМХО;) – TheSatinKnight