PdfSharp库剪裁Pdf页面边缘空白部分

背景

网上下载下来的Pdf格式电子书放到Kindle后由于页面太大,缩放后字常常小得看不清,因此可以通过剪裁页面边缘的空白以缩小页面,使Kindle上显示的字放大。在GitHub上星最多的C# Pdf处理库就是PdfSharp了,然而这个库没有Api手册,需要从零散的示例中找到需要的函数,因此将代码记录如下方便以后参考。

多页Pdf重叠至一页

using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using PdfSharp.Drawing;

class main {
    static void Main(string[] args) {
        XPdfForm f = XPdfForm.FromFile(@"E:\Java&C#\input.pdf");
        // 原来的Pdf文档
        PdfDocument output = new PdfDocument();
        // 创建空白Pdf文档
        PdfPage p = output.AddPage(); p.Width = f.PixelWidth; p.Height = f.PixelHeight;
        // 给空白的Pdf文档添加页面并设置大小为原Pdf页面大小
        XGraphics g = XGraphics.FromPdfPage(p);
        // 在该页面上创建画布
        for (int i = 0; i < f.PageCount; i++) {
            f.PageIndex = i; g.DrawImage(f, 0, 0);
            // 让f指向第i页并把f画在空白文档上
            if (i == 1) p.MediaBox = new PdfRectangle(new XRect(50, 60, p.Width - 100, p.Height - 110));
            // 根据需要调节XRect的参数以剪切页面边缘
        }
        output.Save(@"E:\Java&C#\output.pdf");
    }
}

多页Pdf剪裁页面边缘

using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using PdfSharp.Drawing;

class main {
    static void Main(string[] args) {
        XPdfForm f = XPdfForm.FromFile(@"E:\Java&C#\input.pdf");
        PdfDocument output = new PdfDocument();
        for (int i = 0; i < f.PageCount; i++) {
            f.PageIndex = i;
            PdfPage p = output.AddPage(); p.Width = f.PixelWidth; p.Height = f.PixelHeight;
            XGraphics g = XGraphics.FromPdfPage(p); g.DrawImage(f, 0, 0);
            if (i != 0) p.MediaBox = new PdfRectangle(new XRect(50, 60, p.Width - 100, p.Height - 110));
            // 如果不是封面则剪裁
        }
        output.Save(@"E:\Java&C#\output.pdf");
    }
}

转载于:https://www.cnblogs.com/YuanZiming/p/10339303.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PDFsharp是一个开源的.NET,用于创建和修改PDF文件。它也提供了一些辅助功能,如图片转PDF。 要使用PDFsharp将图片转为PDF,可以按照以下步骤进行操作: 1. 首先,需要安装PDFsharp。可以通过在NuGet包管理器中搜索PDFsharp来找到并安装合适的版本。 2. 导入所需的命名空间。在使用PDFsharp时,需要导入PDFsharp的命名空间和相关的类和方法。 3. 创建一个新的PDF文档对象。可以通过实例化PdfDocument类来创建一个新的PDF文档。 4. 添加新的页面PDF文档中。可以使用AddPage方法在PDF文档中添加新的页面。 5. 加载需要转换的图片文件,并将其绘制到PDF页面上。可以使用XImage类的方法来加载图片文件,并使用DrawImage方法将图片绘制到PDF页面上。 6. 保存PDF文档。使用Save方法将PDF文档保存到指定路径。 下面是一个简单示例,展示如何使用PDFsharp将图片转为PDF: ``` using System; using PdfSharp.Drawing; using PdfSharp.Pdf; class Program { static void Main() { // 创建新的PDF文档 PdfDocument pdf = new PdfDocument(); // 添加新的页面 PdfPage page = pdf.AddPage(); // 加载图片文件并绘制到PDF页面上 XImage image = XImage.FromFile("image.jpg"); XGraphics graphics = XGraphics.FromPdfPage(page); graphics.DrawImage(image, 0, 0); // 保存PDF文档 pdf.Save("output.pdf"); } } ``` 以上示例将名为image.jpg的图片文件转换为PDF,并保存为output.pdf文件。 需要注意的是,PDFsharp还提供了许多其他功能,如添加文本、绘制图形等。根据实际需求,可以在图片转PDF的基础上进行更多操作和样式设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值