No tengo aqui php para hacer pruebas... pero esa era misituació todo UTF8 y no salian bien en local y en html los acentos, quitando SET NAMES 'utf8' de my.ini solucione el problema. Tu caso es sobre rtf no es exàctamente lo mismo.
Te repaso el codigo sin probarlo
13 conectar('localhost', 'user', 'pass', 'bbdd');
Si esta funcion hace lo que su nombre dice, conectar, porque conectas otra vez mas adelante (lineas 19 y siguientes).
14 ini_set("default_charset", "utf-8");
los ini creo que deben ser las primeras lineas...en este caso la 11
21 mysql_select_db(
"bbdd", $link)
faltan unas comillas
40 utf8_encode($nombre);
y todas las lineas similares
no hacen nada si no asignas el resultado de la funcion a una variable, que puede ser la misma
$nombre=utf8_encode($nombre);
43 y siguiente ... podrias obtener la info de las tres consultas con una sola consulta usando join
SELECT * FROM trabajadores WHERE Nombre = '$nombre'"
SELECT * FROM empresa_trabajador WHERE DNI_trabajador = '$dni'
SELECT * FROM empresa WHERE CIF = '$cif'"
esto te dará todos los campos de las tres tablas para el trabajador de nombre $nombre. (Nombre es único?) La estructura de tres tablas es para una relación n:m es decir cada empresa puede tener n trabajadores y cada trabajador m empresas... luego no esta claro que seleccionando por trabajador obtengas una sola empresa... supongo que esto lo tienes solucionados con ...algo? (esto te pasara tanto con mi consulta única como con tus tres consultas)
Si la relacion es n:1 es decir cada empresa
n trabajadores y cada trabajador
una sola empresa, sobraria la tabla intermedia.Con poner el id de la empresa en la tabla trabajadores bastaria.
44 $resultado = mysql_query($consulta) or die("Error al conectar");
Sobran las comillas en "$consulta"
...
En el caso de fpdf hay que hacer la conversion inversa puesto que no admite UTF8 no será lomismo en esste caso? Intenta la conversion a ansi.