Impossible d'appliquer le style à l'aide iTextSharp
Je suis à l'aide de code suivant pour générer un fichier PDF à l'aide .iTextSharp version 5.4.3.
//Create a Document object
var document = new Document(PageSize.A4, 50, 50, 25, 25);
//Create a new PdfWriter object, specifying the output stream
var output = new MemoryStream();
var writer = PdfWriter.GetInstance(document, output);
//Open the Document for writing
document.Open();
string data = @"<table cellspacing="0" border="0" style="border-collapse:collapse;margin-top:30px;;">
<tr>
<td></td><td>Visit</td><td></td><td></td><td></td>
</tr><tr>
<th>Datw</th><td>07/01/2013</td><td>07/18/2013</td><td>07/17/2013</td><td>07/09/2013</td>
</tr><tr>
<th>Score</th><td>3.00</td><td>6.33</td><td>1.00</td><td>8.00</td>
</tr><tr>
<th>Heading</th><td>7.0</td><td>8.0</td><td>2.0</td><td>3.0</td>
</tr><tr>
<th>Minutes</th><td>88</td><td>n/a</td><td>22</td><td>n/a</td>
</tr><tr>
<th>Test Data</th><td>5.0</td><td>8.0</td><td>4.0</td><td>3.0</td>
</tr><tr>
<th>Status</th><td>8.0</td><td>8.0</td><td>3.0</td><td>3.0</td>
</tr><tr>
<th>Data </th><td>3.96</td><td>6.88</td><td>5.83</td><td>6.67</td>
</tr><tr>
<th>Assessment (0-10)</th><td>5.0</td><td>3.0</td><td>2.0</td><td>2.0</td>
</tr><tr>
<th class="seperator">With heading</th><td>n/a</td><td>n/a</td><td>n/a</td><td>n/a</td>
</tr>
</table>";
IElement ele;
PdfPTable t;
var stringWriter = new StringWriter();
StyleSheet styles = new StyleSheet();
styles.LoadStyle("seperator", "border-top", "#a9a9a9 2px solid");
List<IElement> htmlarraylist = HTMLWorker.ParseToList(new StringReader(data), styles);
for (int k = 0; k < htmlarraylist.Count; k++)
{
ele = htmlarraylist[k];
document.Add(ele);
//document.Add((IElement)htmlarraylist[k]);
}
document.Close();
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition", "attachment;filename=Receipt-test.pdf");
Response.BinaryWrite(output.ToArray());
Alors que sa génération de PDF, ce n'est pas l'application de style. Aussi il n'affiche pas les balises en gras.
Suis-je raté quelque chose? Merci
OriginalL'auteur SharpCoder | 2013-07-31
Vous devez vous connecter pour publier un commentaire.
Vous utilisez
HTMLWorker
, l'obsolescence de la classe qui n'est plus pris en charge. Il ne prend pas en charge les fichiers CSS et qui explique pourquoi toutes les questions à propos de la bibliothèque iText, HTML et CSS restent sans réponse. Vous devez utiliser XML Travailleur au lieu de laHTMLWorker
classe. Voir http://sourceforge.net/projects/itextsharp/files/xmlworker et http://demo.itextsupport.com/xmlworkerOriginalL'auteur Bruno Lowagie
S'il vous plaît essayer le code ci-dessous. Je l'ai testé et il s'appliquait à tous les styles:
Oui, ème ne pas prendre de gras par défaut dans iTextsharp. Vous pouvez mettre en gras spécialement à l'aide de style='font-weight:bold;'. Concernant séparateur ça ne fonctionne pas parce que vous avez spécifié border='0'. Supprimer cela et vous devriez être bon d'aller.
Je peux comprendre au sujet de 'th' tag, mais même après la suppression des frontières de la table, je ne suis pas le voir le style est appliqué. Aussi, dans votre code, vous ne disent pas explicitement inclure/appliquer le style.
hmmm feuille de style ne travaille pas beaucoup de temps. Je pense qu'il n'est pas correctement mis en œuvre dans PDFSharp. Au lieu d'essayer spécification CSS directement et cela fonctionne.
OriginalL'auteur TCM