Définir la largeur d'un <TD> lors de la conversion HTML vers PDF iTextSharp
Sur le bouton cliquez sur j'ai besoin de lire le fichier HTML et le convertir en PDF. Le PDF est de générer sans aucun problème. Mais la largeur des colonnes dans le tableau est également distribué lors de la conversion au format PDF. Mais j'ai besoin de la première colonne de ma table pour prendre 70% du total de la taille de mon tableau (540)
Comment puis-je faire cela?
Template.html :
<table runat="server" id="header" border="3" width="540">
<tr>
<td style="width:70%; text-align: center; font-weight: bold;">
<strong>Test Specification </strong>
</td>
<td style="width:10%; text-align: center; font-weight: bold;">
<strong>GST </strong>
</td>
<td style="width:10%; text-align: center; font-weight: bold;">
<strong>Service </strong>
</td>
<td style="width:10%; text-align: center; font-weight: bold;">
<strong>Amount </strong>
</td>
</tr>
</table>
Cliquez sur le bouton convertir HTML en PDF :
protected void Button1_Click(object sender, EventArgs e)
{
String htmlText = System.IO.File.ReadAllText(Request.PhysicalApplicationPath + "\\Template.htm");
Document document = new Document();
PdfWriter.GetInstance(document, new FileStream(Request.PhysicalApplicationPath + DateTime.Now.ToString("ddMMyyyy") + "_" + DateTime.Now.ToString("HHmmss tt") + ".pdf", FileMode.Create));
document.Open();
iTextSharp.text.html.simpleparser.HTMLWorker hw = new iTextSharp.text.html.simpleparser.HTMLWorker(document);
hw.Parse(new StringReader(HTML));
document.Close();
StringBuilder sb = new StringBuilder();
sb.Append(HTML);
}
Par la route: HTMLWorker est abandonnée en faveur de XML Travailleur: demo.itextsupport.com/xmlworker/itextdoc/flatsite.html
C'est vrai, mais si vous êtes coincé à l'aide de l' .NET Framework 2.0, alors vous ne serez pas en mesure d'utiliser les nouvelles choses brillantes.
Juste une note rapide pour vous dire que si vous avez 4 colonnes, mais seulement mettre en largeurs sur les 3 premiers en supposant qu'il va travailler sur la 4e. Il ne sera pas vous avez besoin de la largeur partout.
C'est vrai, mais si vous êtes coincé à l'aide de l' .NET Framework 2.0, alors vous ne serez pas en mesure d'utiliser les nouvelles choses brillantes.
Juste une note rapide pour vous dire que si vous avez 4 colonnes, mais seulement mettre en largeurs sur les 3 premiers en supposant qu'il va travailler sur la 4e. Il ne sera pas vous avez besoin de la largeur partout.
OriginalL'auteur Anuya | 2012-11-27
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser une combinaison de colspan et LoadTagStyle, qui sont tous deux à l'extérieur des limites de ce que je peux tenir dans cette zone de texte. Pour simplifier, iTextSharp traite le nombre total de colonnes que 100% de la table, de sorte qu'un colspan de 5 sur un tableau de 10 colonnes doivent être traités comme 50% de la table.
J'ai trouvé que j'ai à jouer avec les valeurs un peu, mais j'espère que ça va vous conduire sur le droit chemin.
Juste pour ajouter mon 2 cents comme je l'ai découvert à la dure - vous pouvez évidemment pas toutes les colonnes qui ont la largeur d'une partie d'un
colspan
cellules ensemble. En d'autres termes, si la colonne 1 a une largeur définie, et quelque part le long de la ligne que vous avez une colonne d'attributcolspan='2'
, il rompt le réglage de la largeur complètement...OriginalL'auteur David Brunow
vous devez définir td largeur en pourcentage
<td width="10%">
de td dans chaque ligne, non seulement dans l'en-tête ou de première ligne.Ne fonctionne pas sur les anciennes versions de ITextSharp. Assurez-vous d'utiliser la dernière version!
OriginalL'auteur swapnil shahane
Utilisation colspan propriété. Si vous avez deux cellules définie comme 10% et 90% par exemple. Ensemble colspan = 1 et 9 respectivement.
Il fait le tour.
OriginalL'auteur Isabelle
définir l'width="70%" et cela devrait fonctionner.
OriginalL'auteur VahidN
son travail dosent.
il n'existe pas de toute façon de mettre la table largeur de la cellule.
im en utilisant inhabituelle code pour modifier la largeur de la cellule.
avec cet exemple de code, vous pouvez trouver tous les tableaux et de trouver toutes les lignes.
si la ligne a 2 colonnes, la largeur des cellules de 400 et 100!
*vous devez changer le code de votre projet!
OriginalL'auteur mRizvandi