Čau,
jsem mizerný programátor a posledních pár dní řeším, jak zprovoznit diakritiku při vyplňování předchystaného .pdf formuláře za pomocí formuláře na webu. Nejdříve jsem zjišťoval, jakým způsobem vůbec vyplňování zprovoznit a nakonec jsem se rozhodl pro PDFTk. Aktuálně mám tedy napsané toto:
<?php
if(isset($_POST['odeslat'])){
$jmeno = $_POST['jmeno'];
$prijmeni = $_POST['prijmeni'];
$mesto = 'Brno';
$mail = 'email@email.com';
$content = '%FDF-1.2
1 0 obj<</FDF<< /Fields[
<</T(Name)/V('.chr(0xFE).chr(0xFF).mb_convert_encoding($jmeno,'UTF-16BE', 'UTF-8').')>>
<</T(Surname)/V('.chr(0xFE).chr(0xFF).mb_convert_encoding($prijmeni,'UTF-16BE', 'UTF-8').')>>
<</T(City)/V('.chr(0xFE).chr(0xFF).mb_convert_encoding($mesto,'UTF-16BE', 'UTF-8').')>>
<</T(Mail)/V('.chr(0xFE).chr(0xFF).mb_convert_encoding($mail,'UTF-16BE', 'UTF-8').')>>
] >> >>
endobj
trailer
<</Root 1 0 R>>
%%EOF';
file_put_contents('test.fdf', $content);
//$fp = fopen('test.fdf', 'w');
//fwrite($fp, $content);
//fclose($fp);
exec("pdftk forma.pdf fill_form test.fdf output filled.pdf flatten");
}
?>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="generator" content="PSPad editor, www.pspad.com">
<title></title>
</head>
<body>
<form method="POST" action="">
<input type="text" name="jmeno" /><br />
<input type="text" name="prijmeni" /><br />
<input type="submit" name="odeslat" value="Odeslat!">
</form>
</body>
</html>
Mé testovací .pdf tedy obsahuje 4 pole (Name, Surname, City, Mail) a skript pro vyplnění .pdf z formuláře (nebo proměnných) jsem převzal z této stránky. Vyplňování normálně funguje pro anglický - nadiakritický - jazyk, ale jakmile do formuláře zadám cokoli s diakritikou, v .pdf se mi namísto diakritických znaků zobrazují pouze otazníky.
Nevíte, jakým způsobem mám změnit kódování, abych měl správně diakritiku i v samotném .pdf? Zkoušel jsem i jiný způsob vyplňování, pomocí fpdm.php, ale rovněž jsem se nesetkal s úspěchem.
Budu rád za každou odpověď,
Ondřej