【问题标题】:How to show PDF file in MigraDoc.Rendering.Forms.DocumentPreview (in WinForms)?如何在 MigraDoc.Rendering.Forms.DocumentPreview(在 WinForms 中)中显示 PDF 文件?
【发布时间】:2017-11-16 13:21:02
【问题描述】:

我有一个简单的问题。如何使用 PagePreview 显示 PDf 文件?

我有一个完整的路径名 document.FileName = "c:\scans\Insurance_34345.pdf";

pagePreview.Preview(document.FileName);什么的……

如果有另一种显示 pdf 的方式。没关系。我想在 WinForms 表单上显示它。

我试过这个。我不知道我该怎么办...

在设计器中

private MigraDoc.Rendering.Forms.DocumentPreview dpvScannedDoc;

部分代码

                string fullPadnaam = Path.Combine(defaultPath, document.FileName);
                //PdfDocument pdfDocument = new PdfDocument(fullPadnaam);
                //PdfPage page = new PdfPage(pdfDocument);
                //XGraphics gfx = XGraphics.FromPdfPage(page);
                MigraDoc.DocumentObjectModel.Document pdfDocument = new MigraDoc.DocumentObjectModel.Document();
                pdfDocument.ImagePath = fullPadnaam;

                 var docRenderer = new DocumentRenderer(pdfDocument);
                 docRenderer.PrepareDocument();

                 var inPdfDoc = PdfReader.Open(fullPadnaam, PdfDocumentOpenMode.ReadOnly);
                 for (var i = 0; i < inPdfDoc.PageCount; i++)
                 {
                     pdfDocument.AddSection();
                     docRenderer.PrepareDocument();

                     var page = inPdfDoc.Pages[i];

                     var gfx = XGraphics.FromPdfPage(page);

                     docRenderer.RenderPage(gfx, i + 1);
                 }

                 var renderer = new PdfDocumentRenderer();

                 renderer.Document = pdfDocument;

                 renderer.RenderDocument();

                // MigraDoc.DocumentObjectModel.IO.DdlWriter dw = new MigraDoc.DocumentObjectModel.IO.DdlWriter("HelloWorld.mdddl");
                // dw.WriteDocument(pdfDocument);
                // dw.Close();

                //renderer.PdfDocument.rea(outFilePath);
                //string ddl = MigraDoc.DocumentObjectModel.IO.DdlWriter.WriteToString(document1);
                dpvScannedDoc.Show( pdfDocument);

【问题讨论】:

    标签: c# winforms pdfsharp migradoc


    【解决方案1】:

    PDFsharp 不呈现 PDF 文件。您无法使用PagePreview 显示 PDF 文件。

    如果您使用XGraphics 类进行绘图,那么您可以使用在PagePreview 和PDF 页面上绘制的共享代码。

    PagePreview 示例可以在示例包中找到,也可以在此处找到:
    http://www.pdfsharp.net/wiki/Preview-sample.ashx

    如果您有使用 PDFsharp 创建新 PDF 文件的代码,那么您可以使用 PagePreview 在屏幕上显示您原本会在 PDF 页面上绘制的内容。您不能使用PagePreview 绘制现有的 PDF 页面,因为 PDF 不呈现 PDF。

    【讨论】:

    • 你是怎么做到的?我找不到这样的例子? PdfDocument pdfDocument = new PdfDocument(document.FileName); PdfPage page = new PdfPage(pdfDocument); XGraphics gfx = XGraphics.FromPdfPage(page);
    • 我不知道如何使用此代码进入 PagePreview。
    • 使用 PDFsharp 无法完成您想要的操作,因为 PDFsharp 不呈现 PDF 页面。
    【解决方案2】:

    MigraDoc DocumentPreview 可以显示 MDDDL 文件(您的示例代码会创建一个文件“HelloWorld.mdddl”),但它不能显示 PDF 文件。

    如果 MDDDL 使用 PDF 文件作为图像,它们将不会显示在预览中。它们将在从 MDDDL 创建 PDF 时显示。

    【讨论】:

    • 这只是互联网的副本。我只想知道如何在 Windows 窗体上显示 pdf 文件。那是我的问题。你能帮我吗?
    • 你不能用 PDFsharp 显示 PDF 文件,你不能用 MigraDoc 显示 PDF 文件。我不能推荐可以显示 PDF 文件的工具。
    猜你喜欢
    • 2011-02-24
    • 1970-01-01
    • 2015-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多