Pdftk + xfdf + php cannot handle umlauts

I use XFDF files to populate PDF form servers using PHP and pdftk, but my problem is that no non-English characters (ä, ö, å, etc.) are printed in the form fields.

Here is the function I use to parse the XFDF file:

function createFDF($file,$info,$enc='UTF-8'){ 
$data='<?xml version="1.0" encoding="'.$enc.'"?>'."\n". 
    '<xfdf xmlns="http://ns.adobe.com/xfdf/" xml:space="preserve">'."\n". 
    '<fields>'."\n"; 
foreach($info as $field => $val){ 
    $data.='<field name="'.$field.'">'."\n"; 
    if(is_array($val)){ 
        foreach($val as $opt) 
            $data.='<value>'.htmlentities($opt,ENT_COMPAT,$enc).'</value>'."\n"; 
    }else{ 
        $data.='<value>'.htmlentities($val,ENT_COMPAT,$enc).'</value>'."\n"; 
    } 
    $data.='</field>'."\n"; 
} 
$data.='</fields>'."\n". 
    '<ids original="'.md5($file).'" modified="'.time().'" />'."\n". 
    '<f href="'.$file.'" />'."\n". 
    '</xfdf>'."\n"; 
return $data; 

And the resulting XFDF file looks like this:

<?xml version="1.0" encoding="UTF-8"?>
<xfdf xmlns="http://ns.adobe.com/xfdf/" xml:space="preserve">
<fields>
<field name="loadman-pudotuspainolaitteen-mittaustulosten-tallenne">
<value>1201</value>
</field>
<field name="tutkittavarakenne-rivi1">
<value>a</value>
</field>
<field name="tutkittavarakenne-rivi2">
<value></value>
</field>
<field name="tutk-pvm">
<value>11.12.2012</value>
</field>
<field name="mittauksen_suorittaja">
<value>o</value>
</field>
<field name="vast-tyonjohtaja">
<value>&ouml;</value>
</field>
<field name="rakennemateriaali">
<value>&auml;</value>
</field>
<field name="laatuvaatimukset">
<value>&aring;</value>
</field>
<field name="mittauspaikan_tiivistysmenetelma">
<value>&aacute;</value>
</field>
<field name="pohjalevy">
<value>&eacute;</value>
</field>
<field name="pohjamaa-alusrakenne">
<value>&iacute;</value>
</field>
<field name="mittauspaikan-tiivistysmenetelma">
<value>&egrave;</value>
</field>
<field name="emoduli">
<value>&ouml;</value>
</field>
<field name="tiiveys">
<value>&ouml;&auml;</value>
</field>
<field name="huomautukset_ja_loppupaatelmat1">
<value>&ouml;&auml;</value>
</field>
<field name="huomautukset_ja_loppupaatelmat2">
<value>&ouml;&auml;</value>
</field>
<field name="huomautukset_ja_loppupaatelmat3">
<value>&ouml;&auml;</value>
</field>
<field name="empa1">
<value>&ouml;</value>
</field>
<field name="empa1-e">
<value>&ouml;</value>
</field>
<field name="empa2">
<value>&ouml;</value>
</field>
<field name="empa2-e">
<value>&ouml;</value>
</field>
<field name="allekirjoitus">
<value>Einomies Porkkakoski</value>
</field>
</fields>
<ids original="84b0ff7a04b017303be186faa0d1254a" modified="1343290963" />
<f href="assets/loadman.pdf" />
</xfdf>

Fields with English letters print fine, but letters with sharks, graves or Scandinavian additions are not transferred to the PDF file. EXCEPT for any reason

<field name="huomautukset_ja_loppupaatelmat1">
<value>&ouml;&auml;</value>
</field>

Works great and prints öä!

Run command

pdftk <pdf-file> fill_form <xfdf-file> output <output file> flatten

This does not lead to errors.

I am using Debian 6.0, PHP 5.3.3-7 + squeeze13, and the pdftk version is 1.44-5

UPDATE. , , , , , . - , . , .

2 . Adobe Acrobat Pro OSX Snow Leopard. LibreOffice + Oracle PDF Import plugin , , !

+2
3

, , :

  • &#196; Ä ( &Auml;)
  • &#197; Å ( &Aring;)
  • &#214; Ö ( &Ouml;)
  • &#220; Ü ( &Uuml;)
  • &#223; ß ( &szlig;)
  • &#228; ä ( &Auml;)
  • &#229; å ( &Aring;)
  • &#246; ö ( &Ouml;)
  • &#252; ü ( &Uuml;)

, , : -)

+2

, htmlentities PHP . &xxxx;

XML- iso-8859-1 WINDOWS-1252 htmlentities PHP

, - utf8_encode htmlentities ( XML-)

+2
0

All Articles