mandar imprimir desde abrir c# asp.net-mvc nested itextsharp

mandar - imprimir pdf desde c# sin abrir acrobat



itext shatp anidado<ul><li> en PdfPcell no se imprime correctamente con c# (1)

Aquí tengo datos de texto html

<ul> <li><strong>sf f</strong></li> <li><strong>sd gmdslkg &nbsp;</strong> <ul> <li><strong><span style="color:#FF0000">dsg&nbsp;</span></strong></li> <li><span style="color:#FF0000"><strong>ffg&nbsp;</strong></span></li> <li><span style="color:#800080"><strong>dfg g fdghdf</strong></span> <ul> <li><span style="color:#EE82EE"><strong>dsg &nbsp;g</strong></span></li> <li><span style="color:#EE82EE"><strong>fdgh d</strong></span></li> <li><span style="color:#EE82EE"><strong>ghdf rfh&nbsp;</strong></span> <ul> <li><span style="color:#FFD700"><strong>hdf</strong></span></li> <li><span style="color:#FFD700"><strong>fdg dfghh</strong></span></li> <li><span style="color:#FFD700"><strong>bh dfh</strong></span></li> </ul> </li> <li><span style="color:#A52A2A"><strong>dfgh dfh&nbsp;</strong></span></li> <li><span style="color:#A52A2A"><strong>dfg&nbsp;</strong></span></li> </ul> </li> <li><strong>dfg dfghd r re 5ygtr &nbsp;ger</strong></li> </ul> </li> <li><span style="color:#FF8C00"><strong>gds mgds</strong></span></li> <li><span style="color:#B22222"><strong>dsfg sdg</strong></span></li> </ul> <ol> <li><span style="color:#40E0D0"><strong>dslmg lmdsg</strong></span></li> <li><strong>dsg&nbsp;</strong></li> <li><strong>&nbsp;<span style="color:#FFA500">grews</span></strong></li> <li><span style="color:#EE82EE"><strong>dgds g&nbsp;</strong></span></li> <li><span style="color:#EE82EE"><strong>gsrd h</strong></span></li> <li><span style="color:#800080"><strong>&nbsp;eg dsg w r4ewty 43 dfgbreg</strong></span></li> <li><span style="color:#800080"><strong>&nbsp;t43 t43tgfdfsgre</strong></span></li> </ol>

y ahora cuando intento imprimir en itex-sharp pdf usando el siguiente código:

var doc = new iTextSharp.text.Document(); doc.Open(); iTextSharp.text.html.simpleparser.StyleSheet ST = new iTextSharp.text.html.simpleparser.StyleSheet(); ST.LoadTagStyle(HtmlTags.BODY, HtmlTags.ENCODING, BaseFont.IDENTITY_H); var tmpCellNote = new PdfPCell(new Phrase("Subcontractor Notes: ", noteFont)) { Border = 0, HorizontalAlignment = Element.ALIGN_LEFT, Colspan = 5 }; tmpCellNote.PaddingLeft = (10 * schedule.Level); var objects = iTextSharp.text.html.simpleparser.HTMLWorker.ParseToList(new StringReader(Convert.ToString(schedule.Notes)), ST); for (int k = 0; k < objects.Count; ++k) { tmpCellNote.AddElement((IElement)objects[k]); } table.AddCell(tmpCellNote); doc.Add(table);

usando el código anterior, se imprimirá así:

  • sf f
  • sd gmdslkg
  • dsg
  • ffg
  • dfg g fdghdf
  • dsg g
  • fdgh d
  • ghdf rfh
  • hdf
  • fdg dfghh
  • bh dfh
  • dfgh dfh
  • dfg
  • dfg dfghd r re 5ygtr ger
  • gds mgds
  • dsfg sdg
  1. dslmg lmdsg
  2. dsg
  3. grews
  4. dgds g
  5. gsrd h
  6. por ejemplo, dsg w r4ewty 43 dfgbreg
  7. t43 t43tgfdfsgre

Entonces, ¿cómo puedo lograr esto usando c # y itextsharp PdfPTable y PdfPCell para etiquetas anidadas <ul> y <li> ?

Por favor, ayúdame.

Gracias.


No es compatible con la biblioteca ITextSharp.

Para ser honesto, no me gusta ITextSharp. Se necesita mucho trabajo para guardar PDF desde HTML. Lo que siempre uso es Nreco.PdfGenerator, que se encuentra aquí:

GENERADOR DE PDF

Ahora, admite CSS incrustado, CSS en línea, salto de página por CSS, configuración de comportamiento de tabla por CSS, bueno, todo. La mejor herramienta que podría encontrar de forma gratuita para obtener HTML -> conversión de PDF.

Código de ejemplo para generar pdf desde HTML:

var generator = new NReco.PdfGenerator.HtmlToPdfConverter(); var fileLines = System.IO.File.ReadAllText(@"C:/TEMP/test.html"); //you can always use ANY html string, not exactly file var pdfBytes = generator.GeneratePdf(fileLines); //returns PDF byte[] System.IO.File.WriteAllBytes(@"C:/TEMP/test.pdf", pdfBytes); //save to PDF

Usando su ejemplo obtuve el mismo resultado en PDF que el resultado en HTML.