背景

网上下载下来的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");
}
}

PdfSharp库剪裁Pdf页面边缘空白部分的更多相关文章

  1. PDF中的空白页面怎么删除,PDF页面删除技巧

    在Word中想要删除其中一页文档的怎么办?直接打开就可以删除了,那么我们如何删除PDF其中几页呢?下面小编就来告诉大家PDF删除页面跟空白页面的方法.想要删除PDF文档中的页面,可以使用PDF编辑器, ...

  2. 使用iText库创建PDF文件

    前言 译文连接:http://howtodoinjava.com/apache-commons/create-pdf-files-in-java-itext-tutorial/ 对于excel文件的读 ...

  3. 转:在 C# 中使用 P/Invoke 调用 Mupdf 函数库显示 PDF 文档

    在 C# 中使用 P/Invoke 调用 Mupdf 函数库显示 PDF 文档 一直以来,我都想为 PDF 补丁丁添加一个 PDF 渲染引擎.可是,目前并没有可以在 .NET 框架上运行的免费 PDF ...

  4. Linux下分割、合并PDF(pdftk),用于Linux系统的6款最佳PDF页面裁剪工具

    Linux下分割.合并PDF(pdftk),用于Linux系统的6款最佳PDF页面裁剪工具 Linux下分割.合并PDF(pdftk) pdftk http://www.pdflabs.com/doc ...

  5. Android原生PDF功能实现:PDF阅读、PDF页面跳转、PDF手势伸缩、PDF目录树、PDF预览缩略图

    1.背景 近期,公司希望实现安卓原生端的PDF功能,要求:高效.实用. 经过两天的调研.编码,实现了一个简单Demo,如上图所示. 关于安卓原生端的PDF功能实现,技术点还是很多的,为了咱们安卓开发的 ...

  6. C#/VB.NET 合并PDF页面

    本文以C#及vb.net代码为例介绍如何来实现合并PDF页面内容.本文中的合并并非将两个文档简单合并为一个文档,而是将多个页面内容合并到一个页面,目的是减少页面上的空白区域,使页面布局更为紧凑.合理. ...

  7. C# 复制PDF页面到另一个PDF文档

    C# 复制PDF页面到另一个PDF文档 有时候我们可能有这样一个需求,那就是把PDF页面从一个PDF文档复制到另一个PDF文档中.由于PDF文档并不像word文档那样好编辑,因此复制也相对没有那么容易 ...

  8. 通过javascript库JQuery实现页面跳转功能代码

    通过javascript库JQuery实现页面跳转功能代码的四段代码实例如下. 实例1: 1 2 3 4 $(function(){ var pn = $("#gotopagenum&quo ...

  9. php页面显示空白

    问题: 本人php初学者,网站下载wamp5,安装好之后,测试环境是否正常,用phpinfo(),但是页面不能正确显示. 1.显示连接错误 2.显示空白页 解决方法: 一.显示连接错误 步骤: 1.p ...

随机推荐

  1. 2019-02-12 html的初步学习

    前两天看了下python的爬虫,后面的抓包模拟登录实在是难弄,于是暂时放弃,来学学前端知识QAQ <!DOCTYPE html>文档类型符合HTML5标准 <html lang=&q ...

  2. 多语言工作者の十日冲刺<9/10>

    这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 团队作业第五次--Alpha冲刺 这个作业的目标 团队进行Alpha冲刺--第九天(05.08) 作业正文 ...

  3. opencv C++全局直方图均衡化

    cv::Mat histogramEqualization(cv::Mat img){ int rows=img.rows; int cols=img.cols; cv::Mat grayScale= ...

  4. 用VMware克隆CentOS 6.5如何进行网络设置

    我们使用虚拟机的克隆工具克隆出了一个电脑,电脑连接采用nat方式 111电脑对于的ip地址设置如下 [root@localhost ~]# cd /etc/sysconfig/network-scri ...

  5. 线性dp 打鼹鼠

    鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的.根据这个特点阿Q编写了一个打鼹鼠的游戏:在一个n*n 的网格中,在某些时刻鼹鼠会在某一个网格探出头来透透气.你可以控 ...

  6. c语言二维数组的转置

    #include <stdio.h> #include <string.h> #include <stdlib.h> #define maxsize 3 #defi ...

  7. ajax前后端交互原理(6)

    6.XMLHttpRequest对象 XMLHttpRequest 是一个 API,它为客户端提供了在客户端和服务器之间传输数据的功能.它提供了一个通过 URL 来获取数据的简单方式,并且不会使整个页 ...

  8. github Pull Request合入全流程介绍

    图解全流程 详细步骤 1. fork仓库 2. clone fork仓库到本地 3. 关联upstream原仓库 在fork本地仓库输入下面命令进行关联: git remote add upstrea ...

  9. Spring Security(四) —— 核心过滤器源码分析

    摘要: 原创出处 https://www.cnkirito.moe/spring-security-4/ 「老徐」欢迎转载,保留摘要,谢谢! 4 过滤器详解 前面的部分,我们关注了Spring Sec ...

  10. "Celsius=5/9*(Fahrenheit-32)" and "Celsius=5*(Fahrenheit-32)/9 "

    The reason for multiplying by 5 and dividing by 9 instead of just multiplying by 5/9 is that in C, a ...