Affichage incorrect des polices cyrilliques dans le formulaire PDF

Tôt ou tard se pose la question de la génération de fichiers PDF. C'est pratique et les pages peuvent être très belles. Il existe de nombreuses bibliothèques différentes pour PHP, j'ai dans ce cas La tâche était de le faire sur FPDF. Cette bibliothèque, ou plutôt, la classe est distribuée gratuitement et peut travailler avec différents types encodages, y compris CP1251. L'inconvénient de cette bibliothèque est probablement le manque de support UTF, mais il existe une bibliothèque UFPDF corrigée distincte, je ne la considérerai pas.

Vous vous demandez probablement pourquoi la douleur avec l'alphabet cyrillique ? Disons simplement que j'ai passé beaucoup de temps à chercher comment afficher du texte russe au lieu de gribouillis. J'ai tout fait selon les manuels provenant de sources officielles.
Donc, pour qu'il y ait du texte russe, il faut des polices, je l'ai fait pour Arial, Horaires Nouveau Romain, Verdana. Créez un dossier de polices dans votre projet. Jetez-le là polices requises. Nous devons maintenant les convertir en FPDF. De nombreux sites suggèrent d'utiliser utilitaire spécial ttf2pt1.

Ttf2pt1 -a arial.ttf arial Une fois enregistré, vérifions-le dans le navigateur. Il crée 2 fichiers, puis vous devez créer fichier php et procédez comme suit, ou plutôt, cela créera un fichier php contenant des informations sur la police. N'oubliez pas de définir les autorisations sur le dossier dans lequel vous générerez les polices.

J'ai fait tout cela plus d'une fois. Et le scénario ne voulait pas fonctionner. Après quoi, j’ai trouvé un moyen plus simple de convertir les polices.
Allons http://fpdf.fruit-lab.de/index.php?id=3 sur ce site. Sélectionnez l'encodage CP1251, puis attachez la police dont nous avons besoin et cliquez sur Convertir. Là, nous nous intéresserons à php, afm, z. Téléchargez ces fichiers dans le dossier de polices que nous avons créé. Ensuite, vous devez renommer le fichier .php.txt en .php.
Ensuite, nous ouvrirons ce fichier php (depuis le site, nous le téléchargerons sous le nom .php.txt puis le renommerons). Dans ce cas, nous nous intéresserons au nom de la police ($name="ArialMT";). Nous avons maintenant une police et un nom de police. Vous pouvez commencer à créer le générateur PDF lui-même. Nous créons le fichier dont nous avons besoin, connectons les bibliothèques nécessaires.

Define("FPDF_FONTPATH", __system_directory__ ."API/font/"); // juste au cas où j'écrirais chemin completà la bibliothèque. require("/usr/share/php/fpdf/fpdf.php"); // déclare la classe et le constructeur de classe, dans ce cas j'ai une feuille paysage $pdf=new FPDF("L"); //vous devez connecter la police en spécifiant le nom de la police et le nom du fichier. $pdf->AddFont("ArialMT","","119379869a251bdd6a14438b3c5514f2_arial.php"); $pdf->AddPage(); // sélectionne la police du texte. $pdf->SetFont("ArialMT","",35); $pdf->Cell(40,10,"Texte russe !"); $pdf->Sortie();

J'ai passé la plupart de mon temps à cause d'une erreur qui s'est produite : « Erreur FPDF : Police non définie : arialmt B. » Cela était probablement dû à une conversion de police incorrecte lors de l'utilisation de MakeFont ou à l'utilisation d'un paramètre incorrect, par exemple, une erreur se produit lorsque le paramètre 2. ne correspond pas à SetFont ou vice versa.

// Erreur dans cet exemple :
$pdf->AddFont("ArialMT","","119379869a251bdd6a14438b3c5514f2_arial.php"); $pdf->SetFont("ArialMT","B",35); //Et celui-ci aussi : $pdf->AddFont("ArialMT","B","119379869a251bdd6a14438b3c5514f2_arial.php"); $pdf->SetFont("ArialMT","",35); //fonctionne $pdf->AddFont("ArialMT","B","119379869a251bdd6a14438b3c5514f2_arial.php"); $pdf->SetFont("ArialMT","B",35);

Il s'est avéré que les erreurs étaient présentes espace vide, mais je suis content de l'avoir compris, et j'espère que ce petit article vous aidera à ne pas perdre de temps à chercher des problèmes liés aux encodages.


01.02.2005, 21:28

J'essaie de saisir du texte en russe dans un fichier pdf (en particulier un formulaire de demande d'obtention d'un passeport étranger), mais rien n'en sort. Ou plutôt, cela s’avère être un charabia. L'anglais, c'est bien, mais le russe, c'est le mien. Adobe Acrobat 6.0 Professional déforme pour une raison quelconque, même directement, même par copier-coller. Que dois-je faire ?
Merci

02.02.2005, 10:34

02.02.2005, 12:16

Il n'y a pas assez de polices russes dans le système ou Acrobat fonctionne avec une police qui n'a pas de cyrillique.

Je comprends, mais que faire maintenant ? dans d'autres programmes, il n'y a aucun problème pour écrire en russe. comment changer la police avec laquelle fonctionne Acrobat ? Je ne trouve pas du tout où la taille et le type de police changent. Il doit y avoir une sorte de menu de polices, mais où ?

♣ Trèfle

02.02.2005, 13:18

02.02.2005, 17:01

Ou peut-être ne devriez-vous pas vous inquiéter et simplement prendre un formulaire Word et le remplir ? Vous pouvez le télécharger, par exemple, ici http://www.lentatour.ru/doc/anketa_ovir.doc

Oui, ils m'ont déjà dit que personne n'a encore réussi à en apporter un qui leur convienne :) et tous ceux téléchargés hors du site de l'ambassade sont bien différents de « l'original ».

02.02.2005, 17:13

Oui, ils m'ont déjà dit que personne n'a encore réussi à en apporter un qui leur convienne :) et tous ceux téléchargés hors du site de l'ambassade sont bien différents de « l'original ».

Je suis déjà intéressé à vaincre l'acrobate !
Traduire le pdf. fichier dans Word (en utilisant Fine Reader) et remplissez-le ! Cela devrait se révéler presque pareil.

02.02.2005, 17:54

Je suis déjà intéressé à vaincre l'acrobate !

Joignez-le ici ou dites-moi où le trouver

02.02.2005, 20:54

Traduire le pdf. fichier dans Word (en utilisant Fine Reader) et remplissez-le ! Cela devrait se révéler presque pareil.

Qui est-ce? pourquoi je ne sais pas ?

Avant, je le sauvegardais toujours au format RTF ou Doc, mais avec ça fichier spécifique pour une raison quelconque, cela s'avère absurde.

Non, sérieusement : très bien le lecteur est Quoi?

02.02.2005, 21:02

joins-le ici ou dis-moi où le trouver

Le pdf ne rentre pas ici - il est trop gros.
voici l'adresse :

Http://www.rusemblon.org/logon_rus.htm

Allez dans la version russe, l'option « OZP » apparaît à gauche, puis étape 3 - formulaire de demande de délivrance d'un salaire

Honnêtement, le genre Indiana Jones m'a fait un rtf avec un questionnaire très similaire, mais pas tout à fait le même, que j'ai modifié et que je vais essayer demain (je ne peux pas reporter le voyage plus longtemps, je serai coincé au travail) . Mais le mien dernière version toujours différent de l'original.

Si vous réussissez, apprenez à combattre « eux » et l’acrobate en même temps. + (un gros plus !) Les gens auront un questionnaire pour le consulat - beaucoup vous remercieront.

02.02.2005, 21:36




02.02.2005, 21:52

vous devez utiliser des polices de script
Il semble que vous ayez Windows, 2000 ou XP ?
pdf fonctionne avec le cyrillique uniquement sous Windows 98.
Dans d'autres systèmes uniquement avec des scripts.
Oui, soyons honnêtes - j'ai Windows HP (professionnel !), alors maintenant il est clair qu'un non-professionnel (moi) ne pourrait rien avoir de bon avec l'alphabet cyrillique. C'est déjà bon à savoir.
Et il serait encore plus agréable de savoir de quel type de polices il s'agit (d'ailleurs, comment s'appellent-elles en anglais ?), et où les obtenir. Sinon, je serais heureux de travailler avec eux, mais je ne sais pas comment. Camarade professionnel, s'il vous plaît, apprenez-moi !

02.02.2005, 22:44

Si vous réussissez, apprenez à combattre « eux » et l’acrobate en même temps. + (un gros plus !) Les gens auront un questionnaire pour le consulat - beaucoup vous remercieront.

J'ai joint une police qui devrait fonctionner (bien qu'il n'y ait pas d'italique pur). installez-le, puis dans Acrobat Tools -> TouchUp Text ->

08.02.2005, 19:37

J'ai joint une police qui devrait fonctionner (bien qu'il n'y ait pas d'italique pur). installez-le, puis dans Acrobat Tools -> TouchUp Text -> Text Attributes, sélectionnez CyrillicTimes avec les attributs appropriés dans la liste. Testé sur Acrobat 5.0. Si la disposition du clavier passe constamment à l'anglais, vous pouvez simplement taper ce dont vous avez besoin dans un bloc-notes et le coller dans le presse-papiers.

Rien n'a fonctionné - soit parce qu'il n'y a pas d'attributs de texte dans la version 6.0 (ou je ne les trouve pas), soit pour une autre raison :(

09.02.2005, 09:42

rien n'a fonctionné - soit parce qu'il n'y a pas d'attributs de texte dans la version 6.0 (ou je ne les trouve pas), soit pour une autre raison :(

J'ai essayé le sixième, c'était encore mieux. en mode édition (Retouche Texte) bouton droit souris -> propriétés ->

09.02.2005, 11:34

J'ai essayé le sixième, c'était encore mieux. en mode édition (TouchUp Text Tool) bouton droit de la souris -> propriétés -> Texte, alors tout est comme ci-dessus. Travaux:)
eh bien... eh bien, voilà... il s'avère que j'ai trouvé ces propriétés de texte à l'époque. Mais le fait est clairement que je ne sais pas comment définir les polices : (une sorte de mutation s'est apparemment produite. Autrement dit, il me semble savoir comment, mais mon acrobate ne voit pas celles qui sont censées être définies. Eh bien, pourquoi, allez-vous continuer le programme éducatif pour les nuls ( hmm, ou serait-il plus correct de dire théières :) ?) ?

09.02.2005, 11:40

eh bien... eh bien, voilà... il s'avère que j'ai trouvé ces propriétés de texte à l'époque. Mais le fait est clairement que je ne sais pas comment définir les polices : (une sorte de mutation s'est apparemment produite. Autrement dit, il me semble savoir comment, mais mon acrobate ne voit pas celles qui sont censées être définies. Eh bien, pourquoi, allez-vous continuer le programme éducatif pour les nuls ( hmm, ou serait-il plus correct de dire théières :) ?) ?

Nous allons. jusqu'à la fin amère

Redémarrer Acrobat

09.02.2005, 12:01

nous allons. jusqu'à la fin amère

Copiez le dossier contenant les polices, qui se trouve dans l'archive, dans C:\Program Files\Common Files\Adobe\Fonts.

Redémarrer Acrobat

Oh, eh bien, accrochez-vous !.. :)

Naturellement, je les ai d'abord mis au mauvais endroit (dans les polices pour Windows), même si, bien sûr, j'aurais pu deviner : (puisque je peux taper en russe partout sauf dans Acrobat, alors cela découle d'ici, etc.).

Mais les installer là où ils le devraient ne sauve pas la situation. Oui, il les voit maintenant, mais les lettres qui en sortent sont toujours abracadabra. Exactement la même chose qu'avant :((J'ai redémarré tout ce que je pouvais)

09.02.2005, 13:16

L'autre jour, j'ai fait une traduction dans un fichier PDF, le problème est donc familier. Acrobat ne fonctionnera avec aucune police russe, ni True Type ni Type I, jusqu'à ce que vous installiez un plug-in appelé Pit Stop et qu'il intègre la police dans le fichier (il semble que oui, je m'en souviens à l'oreille, car ce plug lui-même -in n'a pas été installé). j'ai ouvert fichiers pdf V Programme Adobe Illustrator CS et là, leurs salauds et leurs règles sont enregistrés dans format pdf et ouverte sans problème dans Acrobat, la police russe s'affiche correctement, même si lorsque vous essayez de la corriger directement dans Acrobat en russe, la maladresse apparaît à nouveau à la place des lettres. Et la taille du fichier augmente de 10 fois avec la police russe.

Il y a quelque temps, je suis tombé sur problème intéressant: l'utilisateur n'affiche pas correctement les polices cyrilliques dans le formulaire PDF lors de la consultation d'une fiche de paie. Fiche de paie est formé à partir du service de portail libre-service pour les employés. Dans les conditions de cette tâche, il est également « donné » que dans les valeurs constantes de la fiche utilisateur, le paramètre « Périphérique de sortie » est réglé sur « PDF ».

Voyons ce qui a été fait pour corriger cette erreur.

Tout d'abord, vous devez déterminer le nom de la police qui n'est pas affichée sur le portail. Pour cela, dans le service « Consulter la fiche de paie » qui s'ouvre, cliquez sur le bouton de la souris et dans menu contextuel sélectionnez « Propriétés du document » :

Allez ensuite dans l'onglet Polices :


Figure 3. Propriétés PDF - Polices

Dans ce cas, la police utilisée dans le formulaire PDF est Courier. Télécharger Police TrueType Courrier et installez-le sur le système avec lequel le portail est « connecté ».
Dans ce cas, vous devez vous assurer que cette police prend en charge l'alphabet cyrillique. Nous lançons le programme RSTXPDF2UC, sélectionnons l'option « Liste des attributs de police » sur l'écran de sélection et regardons la section « Langues/Scripts pris en charge » :


Dans ce cas, la section « Langues/scripts pris en charge » est vide. Pour résoudre le problème de l'affichage incorrect des polices cyrilliques dans le formulaire PDF, vous devez trouver une police prenant en charge la région Cyrillique Unicode. Ces polices, par exemple, incluent Courier New :


La police Courier New est parfaite pour résoudre le problème ci-dessus.

Une fois la police requise trouvée et enregistrée dans ordinateur local(fichier avec l'extension *.TTF), vous devez exécuter le programme RSTXPDF2UC dans le système back-end, sélectionnez « Installer la police True Type » :


Dans la fenêtre qui apparaît, vous devez sélectionner le répertoire dans lequel le fichier TTF est enregistré



Dans la boîte de dialogue qui apparaît, il sera demandé au consultant de créer une nouvelle police dans le système. Vous devez sélectionner « Oui » :

La boîte de dialogue suivante vous invitera à utiliser cette police dans les fichiers PDF. Vous devez sélectionner "Oui"

Le système proposera ensuite de sauvegarder les modifications apportées à la demande de transport.

Une fois l'installation terminée, il s'affichera informations généralesà propos de la police :

Ensuite, vous devez créer une règle de mappage pour la police qui vient d'être installée dans le système. La règle de mappage détermine pour quels caractères une police particulière sera utilisée. Pour cela, sélectionnez la rubrique « Créer/modifier une règle de mappage » sur l'écran de sélection du programme RSTXPDF2UC :


Dans la boîte de dialogue qui apparaît, sélectionnez « Oui »

Il vous suffit ensuite de sélectionner police installée(V. dans cet exemple, ici Courrier Nouveau)

Déterminez les zones prises en charge pour la nouvelle police (dans notre cas, vous devez sélectionner la valeur CYRYLIQUE)

Ensuite, nous apporterons des modifications au périphérique de sortie utilisé dans le système pour travailler avec les formulaires PDF. Pour cela, ouvrez la transaction SPAD :


Sélectionnez le périphérique de sortie « PDF » et cliquez sur le bouton « Afficher ». Dans l'écran qui s'ouvre, modifiez le type de périphérique de POST2 à PDUFC.



Des questions ?

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :