Печать содержимого HTML с помощью flex 4 - PullRequest
0 голосов
/ 10 декабря 2011

Я вырываю свои волосы. необходимо распечатать HTML-счета-фактуры с удаленного сервера, используя

класс печати, событие, если растровое изображение установлено как ложное, будет отображать накладную как растровое изображение. по крайней мере, текст размыт и не пригоден для использования. Решение может быть в формате livepdf, но мне нужно печатать прямо, а не сохранять PDF локально. я даже не понимаю, учитывая тот факт, что этот класс печати плохо сосет, flex не разрешит простую функцию печати javascript с удаленной страницы.

прошу помощи!

спасибо

1 Ответ

1 голос
/ 13 декабря 2011

Почему вы не используете браузер для печати?

Вот пример:

Вставьте это в шаблон index.html:

<script language="JavaScript">
    function printPage(htmlPage)
    {
        var w = window.open("about:blank");
        w.document.write(htmlPage);
        w.print();
        w.close();
    }
</script>

Поместите этов вашем проекте Flex.Вы проверяете, есть ли у вас доступ к ExternalInterface для доступа к браузеру.Затем вы будете использовать статический метод ExternalInterface для вызова javascript:

    import mx.controls.Alert;
    import flash.external.ExternalInterface;   

    public static function PrintHtmlPage(pHtmlPage:String):void
    {
        if (ExternalInterface.available)
        {
            try  
            {
                  ExternalInterface.call("printPage",pHtmlPage);
            }
            catch (error:SecurityError) { Alert.show("Security Error"); }
            catch (error:Error) { Alert.show("Error");}
        }
        else { Alert.show("ExternalInterface not avalible");}
    }

Теперь пользователь может распечатать чистый HTML из своего браузера!

http://cookbooks.adobe.com/post_How_to_print_in_Flex_using_browser_capabilities-11468.html

РЕДАКТИРОВАТЬ:

Если вы используете AIR и вам нужно это сделать, вы можете попробовать использовать AlivePDF и следовать этому руководству:

  1. usealivepdf (http://alivepdf.bytearray.org/), и посмотрите этот учебник для печати из AIR (http://murrayhopkins.wordpress.com/2011/01/07/using-alivepdf-to-print-from-air-javascript-via-actionscript3-part-1/)
  2. , проанализируйте HTML в компонентах Spark, затем добавьте их как Sprite, затем используйте printAsBitmap = true в вашем варианте и FlexPrintJob
...