首页 文章

如何使用Migradoc PDF库打开现有PDF文件

提问于
浏览
3

我正在尝试使用PDFSharp(http://www.pdfsharp.net/)中的Migradoc库来打印pdf文件 . 到目前为止,我发现Migradoc支持通过 MigraDoc.Rendering.Printing.MigraDocPrintDocument 类进行打印 . 但是,我还没有找到用MigraDoc实际打开现有PDF文件的方法 .

我确实找到了使用PDFSharp打开现有PDF文件的方法,但我无法将 PDFSharp.Pdf.PdfDocument 成功转换为 MigraDoc.DocumentObjectModel.Document 对象 . 到目前为止,我还没有发现MigraDoc和PDFSharp文档非常有用 .

有没有人有使用这些库来处理现有PDF文件的经验?

我在this示例的帮助下编写了以下代码,但是当我的输入PDF是2页时的结果是具有2个空白页的输出PDF .

using MigraDoc.DocumentObjectModel;
using MigraDoc.Rendering;
using PdfSharp.Drawing;
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;

...

public void PrintPDF(string filePath, string outFilePath)
{

    var document = new Document();

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

    var inPdfDoc = PdfReader.Open(filePath, PdfDocumentOpenMode.Modify);

    for (var i = 0; i < inPdfDoc.PageCount; i++)
    {
        document.AddSection();
        docRenderer.PrepareDocument();

        var page = inPdfDoc.Pages[i];

        var gfx = XGraphics.FromPdfPage(page);

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

    var renderer = new PdfDocumentRenderer();

    renderer.Document = document;

    renderer.RenderDocument();

    renderer.PdfDocument.Save(outFilePath);

}

1 回答

  • 1

    您的代码修改了内存中的inPdfDoc而不保存更改 . 复杂的代码没有任何视觉效果 .

    MigraDoc无法打开PDF文件,MigraDoc无法打印PDF文件,PDFsharp无法打印PDF文件 .

    http://www.pdfsharp.net/wiki/PDFsharpFAQ.ashx

相关问题