2017-10-19 6 views
1

J'ai regardé autour de ce qui est la meilleure façon d'ajouter une case à cocher à un document PDFsharp.PDFsharp comment ajouter des cases à cocher à document

Jusqu'à présent, je ne peux ajouter qu'une chaîne "\u00fd" avec la police Wingdings. Cela ne fonctionne que si le document PDF est ouvert avec Acrobat Reader. Mais si Chrome ou IE l'ouvre, au lieu d'une case à cocher, il affichera un caractère illisible.

Des idées ou une meilleure alternative (gratuite ou open source) à PDFsharp?

Mon exigence pour le document PDF est très facile et juste un ou deux rapports.

Liens suivis fournis par PDFsharp Novice pour intégrer la police.

Dessiner la case à cocher:

XPdfFontOptions options = new XPdfFontOptions(PdfFontEncoding.Unicode, 
               PdfFontEmbedding.Always); 

XFont prevCheckboxFont = new XFont("WingDings", 12, XFontStyle.Regular, options); 

XRect prevCheckboxPos = new XRect(XUnit.FromInch(3.20), XUnit.FromInch(3.30), 
            XUnit.FromInch(1.25), XUnit.FromInch(.10)); 
string prevCheckboxText = "\u00FE"; 
gfx.DrawString(prevCheckboxText, prevCheckboxFont, XBrushes.Black, 
       prevCheckboxPos, XStringFormats.TopLeft); 
+1

Si vous avez besoin d'aide pour corriger votre code alors s'il vous plaît montrer un peu de code. –

+0

Il semble donc que vous n'utilisez pas la dernière version (1.50), mais une version très ancienne (1.32 ou antérieure). Est-ce que ça marche maintenant? Si non, pourriez-vous fournir un fichier PDF? L'extrait de code n'affiche pas le code qui dessine la case à cocher. –

+0

@PDFsharpNovice J'ai ajouté la partie qui dessine la case à cocher. Il fonctionne maintenant. Chrome et IE affichent la case à cocher correcte sur mon ordinateur portable, mais j'ai besoin de faire d'autres tests et de l'exécuter sur le serveur. Et j'ai la dernière version stable 1.32.3057. Ce code semble-t-il correct ou y a-t-il une manière mise à jour de le faire? – causita

Répondre

2

Nous utilisons Wingdings pour créer des cases à cocher en PDF et ils travaillent avec Adobe Reader, Firefox et Chrome.

Assurez-vous d'incorporer les polices dans le fichier PDF.

Avec les anciennes versions 1.32 et plus vous devez spécifier un drapeau pour avoir les polices incorporées:

XPdfFontOptions options = new XPdfFontOptions(PdfFontEncoding.Unicode, 
               PdfFontEmbedding.Always); 
XFont font = new XFont("Times New Roman", 12, XFontStyle.Regular, options); 

Avec les versions actuelles des polices (1.50 et plus) sont toujours intégrés et l'option a été supprimée.

Voir aussi:
http://www.pdfsharp.net/wiki/Unicode-sample.ashx
MigraDox C# Checkboxes - Wingdings Not Working

+0

Vous (correctement!) Demander l'OP pour du code. Comment se fait-il que vous ne fournissiez pas vous-même le code à partir des liens que vous avez fournis, pas même les éléments du code pivot? – mkl

+0

@mkl L'OP n'indique même pas la version utilisée - l'utilisation a changé entre 1,32 et 1,50. Le lien va sur le site officiel du projet et il est peu probable qu'il se casse. Je n'aime pas créer des copies non maintenues du code. Je n'aime pas écrire ou copier du code basé sur la spéculation sans connaître la vraie cause à coup sûr. –

+0

* "Je n'aime pas créer des copies de code non maintenues." * - Une attitude louable en général, mais dans ce cas, cela se heurte à la façon dont le débordement de pile veut ses réponses: ["Toujours citer la partie la plus pertinente d'un lien important "] (https://stackoverflow.com/help/how-to-answer). Cela a été dit: * "Le PO n'indique même pas la version utilisée - l'utilisation a changé entre 1.32 et 1.50." * - Dans ce cas, je suppose soit la version la plus récente, soit je demande au PO de clarifier avant répondre. – mkl