2016-08-18 1 views
0

Je suis intéressé à peaufiner/affiner un code qui est écrit dans un PDF en utilisant le PDFsharp library..net façon de manipuler l'épaisseur de soulignement dans System.Drawing via PDFsharp

Le problème est le suivant: lorsque le texte est à la fois en gras et souligné, le soulignement devient plus épais ainsi que son texte respectif. J'aimerais pouvoir faire en sorte que le soulignement reste mince pendant que le texte devient gras.

En regardant l'API de PDFsharp ainsi que celle de System.Drawing, il semble qu'il n'y a pas de moyen facile de le faire.

Est-ce que quelqu'un sait le contraire? Ci-dessous un exemple de sortie courante du code consommant la librairie PDFsharp, dont je suis certain qu'elle a des appels à System.Drawing et d'autres implémentations GDI/WPF.

Nous utilisons GDI Je suis assez sûr. Le principal appel PdfSharp que nous faisons ici est

public void DrawString(string s, XFont font, XBrush brush, double x, double y, XStringFormat format, double width)

enter image description here

Répondre

1

PdfSharp n'utilise pas System.Drawing lors de la génération d'un fichier PDF, donc la manipulation System.Drawing ne fera pas bien dans votre cas . PDFsharp utilise la position de soulignement et l'épaisseur de soulignement de la table de polices.

Comme PDFsharp est open source, vous pouvez le modifier pour utiliser une épaisseur de soulignement fixe. Vous pouvez également écrire une méthode d'aide qui dessine du texte sans souligner et dessine ensuite une ligne sous le texte. Cela peut être fait sans modifier PDFsharp et vous pouvez facilement mettre à niveau vers des versions ultérieures.

Mise à jour: Autre option: Utilisez MigraDoc pour créer les fichiers PDF. MigraDoc utilise PDFsharp pour créer le fichier PDF, mais MigraDoc dessine les soulignements du texte avec son propre code et le texte normal et gras aura des soulignements identiques.

+0

@lewiSnort Mise à jour de ma réponse - MigraDoc pourrait être une solution pour vous. –

+0

Malheureusement, MigraDoc n'est pas une option pour nous, mais bon à savoir. Je préfère la solution 'solution de contournement' à la simple modification du code tiers, mais c'est une bonne information, ou peut-être que nous pouvons ajouter une fonctionnalité à PdfSharp :). Merci! – lewiSnort