English | 日本
BCL Technologies
Shopping CartContact Us
Base de Conocimientos
BCL easy PDF SDK

¿Cómo puedo crear un PDF de múltiples subprocesos aplicación con easyPDF SDK?

Última actualización

  • PDF SDK basado Multi-Aplicaciones

    La construcción de una aplicación PDF multi-roscado con easyPDF SDK es en realidad bastante simple. Nuestro SDK PDF no maneja directamente, su aplicación tendrá que ser responsable de multi-threading el SDK PDF. Usted tendrá que crear los objetos PDF SDK dentro de sus propios hilos únicos, procesar la operación que desea procesar, y luego suelte los objetos una vez hecho. En tanto que los objetos permanecen en sus propios hilos únicos que van a trabajar sin interferir uno con otro. Los PrintJob.PrintOut () métodos son seguros para subprocesos.


    Sin embargo ciertos aspectos del SDK PDF no es seguro para subprocesos. En particular, las llamadas a los métodos .Save (), como PrinterSetting.Save () no se subprocesos. Esta es una desafortunada limitación del uso de una impresora virtual para procesar los documentos de la SDK PDF. Impresoras sólo pueden tener una configuración activo para su tamaño de papel, o su orientación del papel, porque Impresoras sólo puede realmente Imprimir un documento PDF a la vez debido a limitaciones físicas. Nuestra PDF SDK de la impresora puede no tener esa limitación física, sin embargo, el marco de la impresora incorporado en Windows asume que lo hace y lo trata en consecuencia.


    Si se llama al método PrinterSetting.Save () sobrescribe los ajustes de la impresora para que de cuentas de usuario. Como tal, si estos valores se cambian durante una conversión continua que puede causar problemas. En el mejor de los casos el formato de dos páginas diferentes será diferente, en el peor de los casos puede causar Violaciónes Memory Access que matan a todo el proceso de conversión.


    Si va a imprimir en una máquina de escritorio, corriendo una conversión a la vez, esto no es un problema. Puede cambiar los ajustes para adaptarlos a cada conversión individual. Incluso si tiene varios usuarios, como un entorno de Terminal Server, siempre y cuando cada uno está conectado como su propio usuario que ejecuta una aplicación de escritorio que todos ellos pueden cambiar la configuración de lo que les plazca. Sin embargo, en un entorno de servidor con el cargador, esto no funcionará porque el cargador debe correr a través de una cuenta de usuario específica, y por lo tanto cualquier cambio a los PrinterSettings sucederá en esa sola cuenta de usuario.


    Como tal, si desea imprimir desde un servidor debe determinar los ajustes óptimos y aplicarlas una vez usando los métodos .save () de los objetos apropiados, momento en que estos valores se convertirán el valor predeterminado para todos los trabajos posteriores sobre esa máquina. Si tiene que ser capaz de cambiar la configuración de la mejor solución es ejecutar varios servidores en paralelo, cada uno con su propia configuración, y ordenar los puestos de trabajo de manera apropiada.


  • PDF objetos SDK Com basados ​​aplicaciones de subprocesos múltiples

    PDF objetos SDK COM del BCL no son capaces de trabajar en un apartamento multiproceso (MTA). Ellos deben ejecutarse en un apartamento de un único subproceso (STA). En NET Framework 4 el ajuste de un hilo por defecto es MTA. Ninguno de nuestros objetos PDF COM funciona en un apartamento multiproceso, por lo que debe establecer manualmente el hilo por STA. Si un objeto COM es MTA, que significa que varios subprocesos pueden interactuar con él. Nuestros objetos PDF COM son STA, lo que significa estrictamente sola rosca. Puede ejecutar varias instancias de nuestros objetos PDF COM en paralelo, pero varios subprocesos no puede compartir el mismo objeto PDF COM. Cada objeto COM PDF debe estar aislado en un apartamento de un único subproceso.


    Este concepto de apartamentos (MTA vs STA) es un aspecto de objetos COM. Cuando se crea un nuevo hilo en NET, tiene que elegir si se trata de un STA o un MTA. Esto es sólo importante si usted planea usar objetos PDF COM. Un hilo MTA hace que sea posible compartir el mismo objeto COM entre varios subprocesos. Eso es fundamentalmente diferente de STA. MTA y STA trabajan de forma totalmente diferente. Desde EasyConverter y easyPDF son STA, el hilo debe ser STA.


    Esto no significa que no se puede ejecutar múltiples hilos con easyPDF. Usted puede, pero sólo en un apartamento STA. Esto es contrario a la intuición enorme, porque se llama un "apartamento de un único subproceso", pero en realidad no significa que se limitan a un solo hilo. Sin embargo, si intenta ejecutar un objeto COM STA como easyPDF en un apartamento MTA, el sistema serializar las llamadas a funciones. No se ejecutará en varios subprocesos. Un objeto COM STA sólo funciona en múltiples hilos si se ejecuta en un subproceso STA.


    Así que ambos objetos MTA y STA COM son capaces de multi-threading, pero funcionan de forma totalmente diferente. La conclusión es que debe ejecutar easyPDF de un apartamento STA. Y el cliente puede arreglar esto en una sola línea de código.


-
 
BCL
© 1993 - , BCL Technologies.
All other trademarks are the property of their respective owners.