如何在MigraDoc.Rendering.Forms.DocumentPreview(在WinForms中)中显示PDF文件?

时间:2017-11-16 13:21:02

标签: c# winforms pdfsharp migradoc

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

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

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);

2 个答案:

答案 0 :(得分:0)

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

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

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

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

答案 1 :(得分:0)

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

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