首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在PDFsharp中将流转换为PdfDocument

要在PDFsharp中将流转换为PdfDocument对象,你可以使用PdfReader类从流中读取PDF文件,然后将其转换为PdfDocument对象。以下是一个使用C#的示例:

首先,确保已经安装了PDFsharp库。你可以通过NuGet包管理器安装:

代码语言:javascript
复制
Install-Package PdfSharp
Install-Package PdfSharp.Pdf

然后,使用以下代码将流转换为PdfDocument对象:

代码语言:javascript
复制
using System;
using System.IO;
using PdfSharp;
using PdfSharp.Pdf;

class Program
{
    static void Main(string[] args)
    {
        // 创建一个包含PDF数据的流
        using (MemoryStream stream = new MemoryStream())
        {
            // 假设你已经有一个PdfDocument对象,将其保存到流中
            PdfDocument pdfDoc = new PdfDocument();
            pdfDoc.AddPage(new PdfPage());
            pdfDoc.Save(stream, false);

            // 重置流的起始位置
            stream.Position = 0;

            // 从流中读取PDF文件并转换为PdfDocument对象
            using (PdfReader reader = new PdfReader(stream))
            {
                PdfDocument loadedPdfDoc = PdfGenerator.OpenPdf(reader);

                // 在这里处理loadedPdfDoc,例如保存到文件或执行其他操作
                loadedPdfDoc.Save("output.pdf");
            }
        }
    }
}

在这个示例中,我们首先创建了一个包含PDF数据的MemoryStream。然后,我们使用PdfReader类从流中读取PDF文件,并使用PdfGenerator.OpenPdf()方法将其转换为PdfDocument对象。最后,我们将转换后的PdfDocument对象保存到文件。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • itext7知识点研究(PDF编辑)

    static class MyEventListener implements IEventListener { private List<Rectangle> rectangles = new ArrayList<>(); @Override public void eventOccurred(IEventData data, EventType type) { if (type == EventType.RENDER_TEXT) { TextRenderInfo renderInfo = (TextRenderInfo) data; Vector startPoint = renderInfo.getDescentLine().getStartPoint(); Vector endPoint = renderInfo.getAscentLine().getEndPoint(); float x1 = Math.min(startPoint.get(0), endPoint.get(0)); float x2 = Math.max(startPoint.get(0), endPoint.get(0)); float y1 = Math.min(startPoint.get(1), endPoint.get(1)); float y2 = Math.max(startPoint.get(1), endPoint.get(1)); rectangles.add(new Rectangle(x1, y1, x2 - x1, y2 - y1)); } } @Override public Set<EventType> getSupportedEvents() { return new LinkedHashSet<>(Collections.singletonList(EventType.RENDER_TEXT)); } public List<Rectangle> getRectangles() { return rectangles; } public void clear() { rectangles.clear(); } } static class MyCharacterEventListener extends MyEventListener { @Override public void eventOccurred(IEventData data, EventType type) { if (type == EventType.RENDER_TEXT) { TextRenderInfo renderInfo = (TextRenderInfo) data; for (TextRenderInfo tri : renderInfo.getCharacterRenderInfos()) { super.eventOccurred(tri, type); } } } }

    02
    领券