从WPF应用程序中打开PDF文件

eqoofvh9  于 2023-01-02  发布在  其他
关注(0)|答案(3)|浏览(658)

我有一个WPF应用程序,其中GUI向用户显示应用程序的几个不同方面,对应用程序的每个部分使用不同的tab。我现在希望添加从应用程序中的一个选项卡上加载和查看文档的功能。
我在选项卡中添加了一个DocumentViewer,当我运行应用程序时,可以看到它显示在GUI中,但我不确定如何让DocumentViewer加载/显示文档,而且似乎找不到任何方法调用/标记来实现这一点。
我用来将DocumentViewer添加到应用程序中的XAML标记是:

<TabItem Header="Document Viewer">
    <StackPanel>
        <DocumentViewer x:Name="docViewer" Height="643" Margin="0,0,-0.4,0"/>
            <DocumentViewer x:Name="documentViewer" Height="1" Margin="0,0,-0.4,0" RenderTransformOrigin="0.5,0.5">
                <DocumentViewer.RenderTransform>
                    <TransformGroup>
                        <ScaleTransform ScaleY="-1"/>
                        <SkewTransform/>
                        <RotateTransform/>
                        <TranslateTransform/>
                    </TransformGroup>
                </DocumentViewer.RenderTransform>
            </DocumentViewer>
    </StackPanel>
</TabItem>

我如何将这个DocumentViewer指向位于我的计算机上的PDF(或.doc,或任何其他文件)文件,以便它将在我的应用程序窗口中加载和显示该文档?

i34xakig

i34xakig1#

类似的问题here.wpf没有提供一个基类,如果你想解决这个问题,你可以使用System. Diagnostics.Process.Start(@“filename.pdf”)在它自己的应用程序中打开PDF;
您也可以访问其他选项的链接。

bvhaajcl

bvhaajcl2#

GemBox库可以将文件转换为XpsDocument对象,您可以将其分配给DocumentViewer控件。
例如,下面是如何使用GemBox.pdf执行for PDF

XpsDocument xpsDocument;

public MainWindow()
{
    InitializeComponent();

    using (var document = PdfDocument.Load("input.pdf"))
    {
        this.xpsDocument = document.ConvertToXpsDocument(SaveOptions.Xps);
        this.docViewer.Document = this.xpsDocument.GetFixedDocumentSequence();
    }
}

以及带有GemBox的for DOC。文档:

XpsDocument xpsDocument;

public MainWindow()
{
    InitializeComponent();

    var document = DocumentModel.Load(path);
    this.xpsDocument = document.ConvertToXpsDocument(SaveOptions.XpsDefault);
    this.docViewer.Document = this.xpsDocument.GetFixedDocumentSequence();
}

注意,在这两种情况下,XpsDocument对象必须保持被引用,这样DocumentViewer才能访问它的资源,否则,GC将收集/释放XpsDocumentDocumentViewer将不再工作。

pqwbnv8z

pqwbnv8z3#

我建议使用一个免费的PDF库的c#。
http://www.e-iceblue.com/Introduce/free-pdf-component.html#.V0RVLfmLRpg 就是一个很好的例子!
要查看PDF格式的WPF转换单页图像,并表明这是一个很好的解决方案。

相关问题