2012-04-16 20 views
5

No estoy seguro de cómo superar este problema aunque he configurado el tamaño de página en A4, supongo que el tamaño de mi página permanecerá intacto y mi contenido se cerrará ¿correctamente?WkHtmlToPDF muestra un pequeño pdf si el texto es demasiado largo

nota estoy utilizando la envoltura del WkHtmlToXSharp para crear mi pdf

enter image description here

Problema: Si introduce cadenas que no se dividen, es decir, una cadena larga - lo he mostrado en el la imagen de arriba ocurrirá. ¿Cómo puedo solucionar esto? ¿Hay algunas opciones para WkhtmlToPDF para envolver el texto?

+0

acabo añade una pregunta muy relacionada con esto, sino que se ocupa de imágenes en lugar de cadenas largas "irrompibles". Creo que la razón subyacente es la misma pero la solución es diferente. http://stackoverflow.com/q/12456736/694325 – Nenotlep

+0

Acabo de ver su pregunta, no estoy seguro de cuántas soluciones están disponibles para esta herramienta. La gente ha sugerido una corrección de JavaScript, es decir, contar caracteres y dividir cada línea, pero honestamente no puedo decir cuál es la mejor solución. En cuanto a los documentos de google, parece que rompen cada línea, pero mirando el ancho de la página y el ancho de los caracteres y luego haciendo una división, pero no puedo asegurarlo. Déjeme saber si usted encuentra algo. – Haroon

+0

hola, ¿lo arreglaron? Estoy enfrentando el mismo problema. Gracias. –

Respuesta

0

Necesita romper las páginas. Es fácil como añadir esto:

<div style='page-break-after:always'></div> 

Por ejemplo, si usted tiene una larga mesa, se puede hacer como esto pseudo-código:

if ($row > 100) { 
    echo "</table>"; 
    echo "<div style='page-break-after:always'></div>"; 
    echo "<table>"; } 
+0

Mi problema está más relacionado con el ajuste del texto, no con los saltos de página – Haroon

+0

Ah, ahora lo tengo, bueno, eso es difícil, mi pensamiento es leer las cadenas y si es demasiado largo, romperlo con guiones usando una de las funciones de cadena. PHP tiene la función "wordwrap()". No sé sobre C# tho. – netrox

1

Si desea una solución CSS, podría intentar establecer un ancho para el elemento que se desborda y luego prueba con word-wrap: break-word;, overflow:hidden; y white-space: nowrap para controlar el problema, algunos de estos o una combinación podría funcionar para usted. En cuanto a una solución wkhtmltopdf que sería universal ... ¡Si encuentras alguna, también quiero una!

+0

En cuanto a hackear manualmente el código fuente HTML, puede cargarlo en una cadena y luego verificar si hay palabras que tienen más de 9000 caracteres y luego ejecutar al hacker sucio responsable, pero ese método me parece asqueroso. Incluso una solución JS podría funcionar para esa ruta si no quieres hacerlo en C# – Nenotlep

Cuestiones relacionadas