如何使用 Migradoc PDF 库打开现有的 PDF 文件
How to open an existing PDF file with Migradoc PDF library
我正在尝试使用 PDFSharp (http://www.pdfsharp.net/) 的 Migradoc 库来打印 pdf 文件。到目前为止,我发现 Migradoc 确实支持通过其 MigraDoc.Rendering.Printing.MigraDocPrintDocument
class 进行打印。但是,我还没有找到使用 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);
}
您的代码修改了内存中的 inPdfDoc 而没有保存更改。没有任何视觉效果的复杂代码。
MigraDoc 无法打开 PDF 文件,MigraDoc 无法打印 PDF 文件,PDFsharp 无法打印 PDF 文件。
我正在尝试使用 PDFSharp (http://www.pdfsharp.net/) 的 Migradoc 库来打印 pdf 文件。到目前为止,我发现 Migradoc 确实支持通过其 MigraDoc.Rendering.Printing.MigraDocPrintDocument
class 进行打印。但是,我还没有找到使用 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);
}
您的代码修改了内存中的 inPdfDoc 而没有保存更改。没有任何视觉效果的复杂代码。
MigraDoc 无法打开 PDF 文件,MigraDoc 无法打印 PDF 文件,PDFsharp 无法打印 PDF 文件。