2011-05-27 17 views
5

Estoy tratando de convertir una página aspx a un PDF utilizando el convertidor Winnovative de HTML a PDF, pero antes de que la página se convierta, quiero que se ejecute algún javascript. Sé que el javascript funciona ya que he probado la página aspx independiente sin convertirla a PDF. Sin embargo, cuando se convierte, parece que el javascript no se ha ejecutado. He leído las preguntas frecuentes en el sitio web de Winnovative (http://www.winnovative-software.com/FAQ.aspx) y, como resultado, he agregado lo siguiente a mi código para garantizar que se pueda ejecutar javascript:Conversor de HTML a PDF Winnovative

pdfConverter.ScriptsEnabled = True 
pdfConverter.InternetSecurityZone = InternetSecurityZone.LocalMachine 

Añadir este código todavía no funcionaba, así que traté de comentar mi javascript principal y probar un poco de javascript para ver si funciona. El javascript que probé fue simplemente:

var item = $(".items")[0]; 
items.style.display = "none"; 

El elemento con una clase de "elementos" rodea todo en la página. Cuando volví a generar el PDF, todos los contenidos habían desaparecido como se esperaba. Esto significa que javascript se está ejecutando.

Me pregunté si el PDF se está generando antes de que mi javascript haya tenido la oportunidad de ejecutarse, por eso los efectos no se pueden ver. Encontré en las preguntas frecuentes del sitio web de Winnovative que el convertidor de PDF tiene una propiedad ConversionDelay que se puede usar para especificar un período de tiempo adicional en segundos para esperar a que se cargue el contenido asíncrono antes de comenzar la representación de PDF. Así que agregué lo siguiente:

pdfConverter.ConversionDelay = 30 

Incluso después de este retraso, mi javascript aún no se ejecuta. ¿Alguien puede ofrecer alguna orientación? Gracias.

+0

estás ejecutando su código js dentro document.ready ??? – Haroon

+0

@Haroon Soy sí, y el guión es en la parte inferior de la página para que se ejecute después de que el contenido se carga así si eso es cualquier uso – Leah

+0

Cualquier noticia sobre este tema? Tengo el mismo problema –

Respuesta

0

Una solución para este problema sería guardar la fuente de la página después de JavaScript se ha ejecutado en un navegador, y luego pasar ese archivo HTML al convertidor.

Puede instalar el Web Developer Toolbar para Firefox y usar la función Ver fuente -> Ver fuente generada para obtener el HTML de la página en su estado actual y luego guardarlo en un archivo.

+0

Gracias por su sugerencia, pero desafortunadamente, debido a que el HTML que se genera depende dinámicamente de varios parámetros, esto no es posible. – Leah

1

Encontré que otro producto de winnovative "EVO HTML to PDF Converter for .NET" realiza una buena ejecución de javascript, también funciona con jquery.

Aquí está la página de prueba: http://www.evopdf.com/evopdfdemo/default.aspx y yo probamos la conversión con éxito con estos jQuery páginas representadas:

jQuery Accordion (las fichas se procesan correctamente)

jQuery pagination (los números de páginas creadas por jQuery son visibles)

En estos dos ejemplos falla la conversión de html a pdf de winnovative.


EDIT: Parece que la biblioteca EVO tiene un problema en los guiones relativos no incluyen comenzando con "/"

Si es necesario enlazar un script externo tiene tres opciones:

  1. Agregar una referencia de script utilizando la ruta absoluta como

    <script src="www.myserver.com/myjsfile.js" type="text/javascript"></script> 
    
  2. inserción t que la escritura dentro de la página original con el script <> etiqueta

  3. utilizar una ruta relativa con "/" como

    <script src="/myjsfile.js" type="text/javascript"></script> 
    
+0

@Shadow Wizard gracias por la edición! –

+0

Saludos, se dio cuenta de que se perdió la sangría cuatro espacio adicional en la lista. :) –