标签: print-preview

如何从Dispatcher线程访问单独的线程生成的WPF UI元素?

我需要使用诸如FixedDocument,FlowDocument,PageContent,BlockUIContainer等所有wpf UI元素生成打印预览(长篇).为了保持我的UI响应,我在一个单独的Thread类线程上做这个部分(BackgroundWorker将无法工作,因为我需要一个STA线程).到目前为止一切都很好.
但是在显示打印预览之后我现在需要打印,并且在生成的预览上单击"打印"图标会引发臭名昭着的"调用线程无法访问此对象,因为其他线程拥有它".例外.那么,有什么办法吗?

编辑(代码):

Dispatcher.CurrentDispatcher.Invoke(new Action(() =>  
    {  
        Thread thread = new Thread(() =>  
            {  
                FixedDocument document = renderFlowDocumentTemplate(report);  
                PrintPreview preview = new PrintPreview();  
                preview.WindowState = WindowState.Normal;  
                preview.documentViewer.Document = document;  
                preview.ShowDialog();  
            });  
        thread.SetApartmentState(ApartmentState.STA);  
        thread.Start();  
    }));`
Run Code Online (Sandbox Code Playgroud)

好的,RenderFlowDocumentTemplate()生成打印预览(包含UI元素)并用报表数据填充它们.PrintPreview是一个自定义窗口,其中包含一个实际保存并显示预览的DocumentViewer元素,并包含打印图标,点击后我想要获取PrintDialog窗口.

编辑(XAML):

<cw:CustomWindow x:Class="MyApp.Reports.PrintPreview"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:cw="clr-namespace:MyApp.UI.CustomWindows;assembly=MyApp.UI.CustomWindows">    
    <DocumentViewer Margin="0,30,0,0" Name="documentViewer"></DocumentViewer>
</cw:CustomWindow>`
Run Code Online (Sandbox Code Playgroud)

wpf multithreading dispatcher print-preview

5
推荐指数
1
解决办法
3482
查看次数

错误 - 权限被拒绝 - jQuery打印预览?

当我使用jQuery打印预览插件单击"打印"时,会弹出以下错误并显示Firebug:

Error: Permission denied to access property 'name'

     if (window.frames[i].name == "print-frame") { 
Run Code Online (Sandbox Code Playgroud)

我不确定它究竟意味着什么或如何纠正它.

javascript printing jquery print-preview

5
推荐指数
1
解决办法
4497
查看次数

在chrome,mozilla和IE中打印网页预览时无法正确显示

IE,chromr,Firefox的图像屏幕截图 我想以A4尺寸打印网页。目前我用过@page{size:auto},@media print{}。我需要每个页面都有边框,并且应该使用分页符来完成。在某些浏览器中,打印预览功能已被打破。请帮我。

我的代码:

@media print{

    @page{size: auto;
        margin:0px 0px 20px 0px;}

    .pagebreak {
  page-break-before: always;
}




body, h1, h2, h3, ol, ul, div {     width: auto;     border: 0;     margin: 0;     padding: 0;     float: none;     position: static;     overflow: visible; }
.header, .event_sidebar, .detail_header, .detail_img, .action_button, #ev_map, .related_eve, .footer{display: none;}
    .event_container{

    max-width:730px;
    width:100%;
    height:auto;
    margin:0px auto;
    outline: none;
    border:double;
    position:relative;
}

.event_print_header {
    height: auto;
    max-width:730px;
    width: 98%;
   margin:0px auto;
   position:relative;
}
.event_print_header img{width:99.99%;}
.event_contentarea{
    width: 100%;
    margin: 0px;
    padding:0px; …
Run Code Online (Sandbox Code Playgroud)

html css print-preview

5
推荐指数
0
解决办法
696
查看次数

打印预览和打印仅打印我网页的一部分

我有一个相当大的表格数据需要打印,但是当我转到Print Preview或 时Print,我只能看到页面上当前可见的内容,而不是网页的全部内容。

这发生在所有浏览器中。什么可能导致这种情况?

html css printing print-preview

4
推荐指数
2
解决办法
3729
查看次数

在没有DocumentViewer的情况下显示HTML文档的打印预览

我有一个C#/ WPF应用程序,我需要在其中显示HTML文档的打印预览 - 基本上就像在Firefox或甚至IE中查看打印预览时所看到的那样.我知道DocumentViewer,但是,我试图远离使用DocumentViewer控件,因为它看起来很慢,我需要显示的一些文档可以超过450页,我想快速加载预览尽可能.有谁知道做这样的事情的优雅方式?我开始假设我需要创建自己的控件,但我真的不知道从哪里开始.

感谢您提供有关此类内容的任何建议或提示!

c# wpf documentviewer webbrowser-control print-preview

4
推荐指数
1
解决办法
5680
查看次数

如何使用QPrinter和QPrintPreviewDialog

我想使用PyQt通过打印机预览,然后打印报告.我尝试了以下代码:

printer = QtGui.QPrinter()
doc  = QtGui.QTextDocument("testing")
dialog = QtGui.QPrintDialog(printer)
dialog.setModal(True)
dialog.setWindowTitle("printerrr")
pdialog = QtGui.QPrintPreviewDialog(printer)
pdialog.setWindowFlags(QtCore.Qt.Window)
pdialog.exec_()
Run Code Online (Sandbox Code Playgroud)

我如何预览我的报告然后打印它?

python printing pyqt print-preview

4
推荐指数
1
解决办法
1万
查看次数

如何在同一屏幕上显示打印对话框和打印预览?

我试图Ctrl-P在 Excel 2013 中模拟,其中打印对话框显示在左侧,打印预览显示在右侧。

(尽管预览显示的位置,我总是必须先单击“显示打印预览”。我找不到强制每次都显示预览的方法)。

我尝试了以下方法:

Application.Dialogs(xlDialogPrint).Show
Run Code Online (Sandbox Code Playgroud)

这将显示您需要单击“预览”按钮的旧样式对话框

ActiveSheet.PrintPreview
Run Code Online (Sandbox Code Playgroud)

这会显示预览,但不允许从同一屏幕更改打印机。

excel outlook vba ms-word print-preview

4
推荐指数
1
解决办法
2万
查看次数

按下 ESC 时关闭 PrintPreviewDialog

我正在开发一个System.Windows.Forms.PrintPreviewDialog用于显示打印预览对话框的 WinForms 应用程序。当用户在该对话框中按 ESC 时,我想关闭该对话框。不幸的是,我无法弄清楚如何做到这一点。我尝试安装 KeyDown/PreviewKeyDown 事件处理程序,但它从未被调用。我还尝试将焦点设置到对话框(及其 PrintPreviewControl),认为这是问题所在,但这也无济于事。有谁知道如何使这项工作?

print-preview winforms

3
推荐指数
1
解决办法
1329
查看次数

在Chrome的新标签页中打开打印预览页

有什么办法可以在Chrome的新标签页中打开打印预览页。我试图

    `<a href="#" target="_blank" onclick="window.print();">Print_This_Page</a>`
Run Code Online (Sandbox Code Playgroud)

但它不起作用。

请帮忙。

printing google-chrome print-preview

3
推荐指数
1
解决办法
8158
查看次数

如何在 PyQt5 中创建 QWebEngineView 的打印预览?

我正在尝试创建 QWebEngineView 的打印预览,但我无法让它工作。

这是我的代码:

...
self.view = QWebEngineView()
...

def handle_preview(self):
    dialog = QPrintPreviewDialog()
    dialog.paintRequested.connect(self.view.print_)
    dialog.exec_()
Run Code Online (Sandbox Code Playgroud)

代码给了我这个错误:

AttributeError: 'QWebEngineView' 对象没有属性 'print_'

当我使用 QTextEdit 时,代码运行良好。但这不是我想要的。我想使用 QWebEngineView。

python pyqt print-preview pyqt5 qwebengineview

3
推荐指数
1
解决办法
1109
查看次数

从 WebBrowser 控件打印时删除页眉和页脚

我有一个使用 MySql 数据库的 C# 应用程序。我使用 HTML 构建了一个报告。

我用标签填充字符串属性并将内容发送到新表单中的 WebBrowser 控件。

报告显示正确,但是当我调用打印预览对话框时,

webBrowser1.ShowPrintPreviewDialog();
Run Code Online (Sandbox Code Playgroud)

页眉和页脚显示在报告中,并带有以下值:

  • 在标题中:页数。
  • 在页脚中:日期和“关于:空白”。

这是该问题的屏幕截图:

在此处输入图片说明

如何删除页眉和页脚?

c# mysql page-setup print-preview winforms

2
推荐指数
1
解决办法
6423
查看次数

如何将 SSRS 报告默认为 PRINT PREVIEW

我正在将访问报告转换为客户端应用程序的 SSRS 报告。客户的要求是,当他们打开 SSRS 报告时,默认情况下应该使用打印预览打开。我无法在 SSRS 中找到设置它的属性。有什么建议?或任何帮助?请!

print-preview reporting-services ssrs-2008

0
推荐指数
1
解决办法
5808
查看次数