gpt4 book ai didi

apache-flex - 在 Flex 4 中的滚动内打印内容

转载 作者:行者123 更新时间:2023-12-04 06:33:03 24 4
gpt4 key购买 nike

我目前正在开发一个向用户显示一些图形数据的 Adob​​e AIR 应用程序。由于此数据的高度更适合屏幕高度,因此我将其放置在滚动条中。

现在我想打印这些视觉数据,主要是一些图表和列表,但我只看到一个页面,其中仅包含用户当前可见的屏幕部分。我想让滚动条内的整个内容出现在页面上。

我尝试同时使用 PrintJob 和 FlexPrintJob,但找不到解决方法。任何人都可以通过提供见解来帮助我,一些源代码将不胜感激。

期待您的回复,

谢谢

最佳答案

这显然是 Flex 打印库和 Scroller 控件的一个已知错误。您可以在此处阅读我对此的讨论:
http://forums.adobe.com/message/3626759

作为一种解决方法,我执行了以下操作:

var printer:FlexPrintJob = new FlexPrintJob();

// Display the print dialog to the user. If they choose a printer
// and click "print", this method will return true, and we will
// spool the job to the printer they selected. If they hit cancel,
// this method will return false, and we will not attempt to send
// anything to the printer.
if(printer.start()){
// Add some padding before spooling the object to the printer.
// This will give it a reasonable margin on the printout.
itemsToPrintContainer.paddingBottom = 100;
itemsToPrintContainer.paddingTop = 100;
itemsToPrintContainer.paddingLeft = 100;
itemsToPrintContainer.paddingRight = 100;


this.removeElement(itemsToPrintContainer);
FlexGlobals.topLevelApplication.addElement(itemsToPrintContainer);
printer.addObject(itemsToPrintContainer);
printer.send();
FlexGlobals.topLevelApplication.removeElement(itemsToPrintContainer);
this.addElement(itemsToPrintContainer);

// Reset the margins to 0 for display on the screen.
itemsToPrintContainer.paddingBottom = 0;
itemsToPrintContainer.paddingTop = 0;
itemsToPrintContainer.paddingLeft = 0;
itemsToPrintContainer.paddingRight = 0;
}

我正在做的是将我想打印的对象移动到滚动条之外,打印它,然后将其移回滚动条内部,因此用户不会意识到任何变化。当事情重新安排时,用户可能会在屏幕上看到短暂的闪光,但对我来说这是可以接受的。

此外,填充是尝试为我的打印输出添加边距。如果您有多个页面,它将无法正常工作。您可能不想在特定情况下添加填充。

-乔希

关于apache-flex - 在 Flex 4 中的滚动内打印内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5146009/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com