2017-03-28 2 views
4

Je travaille donc sur la génération de fichiers PDF en utilisant le package report4PDF (bob nemec) du logiciel VisualWorks 8.1 de Cincom. Je fais tout dans 'smalltalk'.Comment entrer un caractère 'checkbox' sur un pdf généré par report4pdf?

Cependant en ce moment, le problème auquel je suis confronté est que je ne peux pas obtenir un caractère de case à cocher pour apparaître sur le PDF.

donc mon code accepterions comme ceci:

pdfDocument := Report4PDF.R4PReport new. 
exporter := SAGETEAPDFDataExporter onDocument: pdfDocument. 
exporter currentText text string:' Available'. 
"Followed by relevant code to save PDF" 

Mais ce qui apparaît sur mon PDF est essentiellement « disponible ». Un espace apparaît à la place du symbole de la case à cocher. J'ai même essayé d'utiliser des codes dingbats (par exemple: # 9744). Fonctionne avec les droits d'auteur, alpha, symboles gamma. Pas avec le symbole de la case à cocher.

J'ai essayé de mettre à jour mon image VisualWorks à partir du référentiel public en utilisant les packages de développement report4pdf, pdf et de développement de polices. Ran dans quelques questions que je ne mentionnerai pas, car il nous fera dévier du sujet.

Merci à l'avance!

+0

Quel est le codePoint du caractère que vous essayez d'imprimer? Ce caractère est-il également visible lorsque vous utilisez la même police que votre pdf? –

+0

@LeandroCaniglia Toutes nos excuses pour le commentaire vide précédent. Alors, que voulez-vous dire par 'codePoint'? Je ne connais pas ce terme. Aussi pour la deuxième partie, je peux voir le symbole de case à cocher quand j'inspecte la chaîne dans le débogueur ... J'utilise la police Helvetica qui est la police par défaut. Pensez-vous que la police ne peut pas supporter le caractère checkbox? – Mujasoft

Répondre

1

Okay ... J'ai fini par trouver une solution à cette question. Je vais juste poster la réponse ici juste au cas où quelqu'un d'autre se retrouve dans une situation similaire.

pdfDocument := Report4PDF.R4PReport new. 
    exporter := SAGETEAPDFDataExporter onDocument: pdfDocument. 
    exporter currentText text:[:text| 
     text string zapfDingbats ;string:'q'. 
     text string helvetica; string:'Available' ]. 

Vous pouvez donc utiliser la police dingbats pour obtenir un caractère similaire pour la case à cocher. Vous utilisez des polices mixtes pour obtenir quelque chose comme ceci: '(Case à cocher) Disponible'. C'est comme si la chaîne était: 'q disponible'. Mais 'q' est de la police dingbats alors que la sous-chaîne 'Available' est de Helvetica.

Espérons que cela a aidé. Et merci encore @Leandro pour avoir essayé de m'aider :)

Cheers!

+0

Bien résolu. Vous pouvez également regarder R4PBullet, qui permet une ligne de texte avec une balle en utilisant n'importe quelle police. Voir R4PReportTest >> exampleBullet –

+0

Merci! Oui j'ai essayé de regarder la section R4Bullet mais je n'ai pas trouvé de type de puce. Ils étaient tous des noirs solides alors que j'ai besoin de quelque chose comme une case à cocher vide. Et btw excellent travail sur le paquet Report4PDF. C'est vraiment utile. :) – Mujasoft