una - La impresión desde la aplicación AIR/Flex causa que se envíen archivos grandes a la impresora
como imprimir desde mi celular con cable usb (2)
No estoy 100% seguro de que esta respuesta te ayude ya que no habré probado ninguno de los siguientes, pero ¿qué ocurre si usas la clase BitmapData y ejecutas un sorteo (salaSlipImage)? Tendría que colocar ese objeto en un UIComponent para que su printJob lo acepte a través de addObject, pero podría reducir drásticamente el tamaño de los archivos (especialmente si está mirando 100MB [que es lo que supuse que quería decir en lugar de Mb]) .
Estoy trabajando en una aplicación Adobe AIR (2.0) que contiene una función para permitir a los usuarios imprimir documentos (como recibos de sueldo). Esos documentos están originalmente en formato PDF. Debido a las circunstancias, no podemos mostrar directamente esos archivos PDF en la aplicación AIR (por ejemplo, usando flash.html.HTMLLoader). Por lo tanto, convertimos los archivos PDF a archivos SWF (utilizando la herramienta pdf2swf, consulte http://www.swftools.org/ ). Los archivos SWF se cargan en la aplicación utilizando mx.controls.SWFLoader, de la siguiente manera:
<mx:SWFLoader
id="salarySlipImage"
loaderContext="{someLoaderContext}"
trustContent="true"
maintainAspectRatio="true"
scaleContent="true"
source="{salarySlip.swf}" />
donde salarySlip.swf es un ByteArray que contiene el contenido del SWF.
A continuación, tenemos un botón que inicia FlexPrintJob, así:
<mx:Button label="Print" click="print()" />
y entonces:
public function print():void {
var printJob:FlexPrintJob = new FlexPrintJob();
if (printJob.start() != true) {
return;
}
printJob.addObject(salarySlipImage, FlexPrintJobScaleType.MATCH_HEIGHT);
printJob.send();
}
Esto funciona bastante bien (los documentos vienen desplegando la impresora y se ven bien), aunque he notado que los archivos que se envían a la impresora a veces pueden llegar a ser muy grandes, como> 100MB (!!!), lo que puede llevar bastante algún tiempo para llegar a la impresora, como> 30 s (obviamente dependiendo de la velocidad de la conexión a la impresora). Los PDF originales son de alrededor de 150 KB y los archivos SWF de alrededor de 100 KB.
¿Alguien tiene problemas similares al imprimir utilizando mx.printing Flex APIs? Si es así, ¿cómo puedo solucionar esto?
Atentamente,
Chelín
Intenta usar esto; Redujo mucho mi tamaño de impresiones. Todavía me pregunto si puede ser aún más pequeño ... así que si alguien tiene más sugerencias, por favor, compártelo con nosotros. printJob.printAsBitmap = falso;
var printJob:FlexPrintJob = new FlexPrintJob();
printJob.printAsBitmap=false;
if (printJob.start() != true) {
return;
}
printJob.addObject(salarySlipImage, FlexPrintJobScaleType.MATCH_HEIGHT);
printJob.send();
}