C# 获取PDF页面大小、方向、旋转角度
在处理PDF文件时,了解页面的大小、方向和旋转角度等信息对于PDF的显示、打印和布局设计至关重要。本文将介绍如何使用免费.NET 库通过C#来读取PDF页面的这些属性。
- C# 读取PDF页面大小(宽度、高度)
- C# 判断PDF页面方向
- C# 检测PDF页面旋转角度
免费库 Free Spire.PDF for .NET 提供了接口来获取PDF页面信息,我们可以从官网下载产品包后手动添加引用,或者直接通过NuGet安装。
PM> Install-Package FreeSpire.PDF
输入文档如图:
C# 读取PDF页面大小(宽度、高度)
免费Spire.PDF提供了 PdfPageBase.Size.Width 和 PdfPageBase.Size.Height 属性来获取指定PDF页面的宽度和高度。
获取到的值默认单位为磅(point),如果想要将其转换为厘米、毫米等常见单位,可以通过 PdfUnitConvertor 类的 ConvertUnits(float value, PdfGraphicsUnit from, PdfGraphicsUnit to) 方法进行转换。
示例代码如下:
using System;
using System.Text;
using Spire.Pdf;
using Spire.Pdf.Graphics; namespace GetPDFPageSize
{
class Program
{
static void Main(string[] args)
{
//加载PDF文件
PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile("示例.pdf"); //获取第一页
PdfPageBase page = pdf.Pages[0]; //获取页面宽度和高度(默认单位为point)
float pointWidth = page.Size.Width;
float pointHeight = page.Size.Height; //创建PdfUnitConvertor对象用于转换单位
PdfUnitConvertor unitCvtr = new PdfUnitConvertor(); //将单位从磅(point)转换为厘米
float centimeterWidth = unitCvtr.ConvertUnits(pointWidth, PdfGraphicsUnit.Point, PdfGraphicsUnit.Centimeter);
float centimeterHeight = unitCvtr.ConvertUnits(pointHeight, PdfGraphicsUnit.Point, PdfGraphicsUnit.Centimeter); //将单位从磅(point)转换为毫米
float millimeterWidth = unitCvtr.ConvertUnits(pointWidth, PdfGraphicsUnit.Point, PdfGraphicsUnit.Millimeter);
float millimeterHeight = unitCvtr.ConvertUnits(pointHeight, PdfGraphicsUnit.Point, PdfGraphicsUnit.Millimeter); //输出PDF页面宽高度信息
Console.WriteLine("该PDF页面大小为(以磅为单位): 宽度 " + pointWidth + "pt, 高度 " + pointHeight + "pt");
Console.WriteLine("该PDF页面大小为(以厘米为单位): 宽度 " + centimeterWidth + "cm, 高度 " + centimeterHeight + "cm");
Console.WriteLine("该PDF页面大小为(以毫米为单位): 宽度 " + millimeterWidth + "mm, 高度 " + millimeterHeight + "mm"); }
}
}
输出结果:

C# 判断PDF页面方向
页面的方向通常以横向或纵向表示。要判断指定PDF页面的方向:
- 先获取页面宽度和高度
- 再比较这两个值。(如果宽度大于高度,则页面方向为横向,反之则为纵向。)
示例代码如下:
using Spire.Pdf;
using System; namespace GetPDFPageOrientation
{
class Program
{
static void Main(string[] args)
{
//加载PDF文档
PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile("示例.pdf"); //获取第一页
PdfPageBase page = pdf.Pages[0]; //获取页面宽度和高度
float width = page.Size.Width;
float height = page.Size.Height; //通过比较页面宽度和高度来判断页面方向
if (width > height)
{
Console.WriteLine("当前页面方向为横向。");
} else
{
Console.WriteLine("当前页面方向为纵向。");
}
}
}
}
输出结果:

C# 检测PDF页面旋转角度
通过 PdfPageBase.Rotation 属性可以获取指定PDF页面的旋转角度。如果为 0,则表示页面保持原来的方向。
示例代码如下:
using Spire.Pdf;
using System; namespace GetPDFPageOrientation
{
class Program
{
static void Main(string[] args)
{
//加载PDF文档
PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile("示例.pdf"); //获取第一页
PdfPageBase page = pdf.Pages[0]; //获取页面的旋转角度并输出结果
PdfPageRotateAngle rotationAngle = page.Rotation;
string rotation = rotationAngle.ToString(); Console.WriteLine("当前页面旋转角度为: " + rotation);
}
}
}
输出结果:

– 如有任何疑问,可前往论坛交流。
C# 获取PDF页面大小、方向、旋转角度的更多相关文章
- C# iText 7 切分PDF,处理PDF页面大小
一.itext 我要使用itext做一个pdf的页面大小一致性处理,然后再根据数据切分出需要的pdf. iText的官网有关于它的介绍,https://itextpdf.com/ 然后在官网可以查找a ...
- 【JS 移动端】获取设置页面大小
获取设置页面大小 function getMobileData() { var ismobile = false; browser = { versions: function () { var u ...
- asp.net后台获取前台页面大小
前台代码如下:<input type="hidden" runat="server" value="0" id="txBod ...
- PdfSharp库剪裁Pdf页面边缘空白部分
背景 网上下载下来的Pdf格式电子书放到Kindle后由于页面太大,缩放后字常常小得看不清,因此可以通过剪裁页面边缘的空白以缩小页面,使Kindle上显示的字放大.在GitHub上星最多的C# Pdf ...
- Java PDF页面设置——页面大小、页边距、纸张方向、页面旋转
下面的示例将介绍通过Java编程来对PDF页面进行个性化设置的方法,包括设置页面大小.页边距.纸张方向.页面旋转等.这里有如下多种页面大小尺寸可供选择: 同时,设置文档内容旋转时,可支持如下角度进行内 ...
- Java 设置Word页边距、页面大小、页面方向、页面边框
本文将通过Java示例介绍如何设置Word页边距(包括上.下.左.右).页面大小(可设置Letter/A3/A4/A5/A6/B4/B5/B6/Envelop DL/Half Letter/Lette ...
- 如何通过Java更改Word中的页面大小和页面方向
新建的 Word 文档,默认纸张为 A4 纸,大小为 21 厘米 × 29.7 厘米,没特殊要求的文档用 A4 纸即可,但有时文档中的内容比较宽,需要用比 A4 纸更宽的纸张,例如制作一些宽的表格,就 ...
- 用 Javascript 获取页面大小、窗口大小和滚动条位置
页面大小.窗口大小和滚动条位置这三个数值在不同的浏览器例如 Firefox 和 IE 中有着不同的实现.即使在同一种浏览器例如 IE 中,不同版本也有不同的实现. 本文给出两个能兼容目前所有浏览器的 ...
- PDF怎么编辑,如何旋转PDF页面方向
很多的时候,无论是工作中,还是在学习中都会遇到PDF文件,对于PDF文件,熟悉的小伙伴知道,在编辑PDF文件的时候,是需要使用到PDF编辑软件的,那么,在编辑PDF文件的时候,需要旋转文件的页面,这时 ...
- js实现禁止pc端浏览器缩放和获取当前页面浏览器的缩放大小
众所周知:移动端页面禁止用户缩放界面只需加上<meta name="viewport" content="user-scalable=0">即可,但 ...
随机推荐
- 在centos开启防火墙没启动22/tcp or 22/udp的情况下是如何ssh连上的
偶尔间查询防火墙的22/tcp or 22/udp ,看到是no的状态,而且此时也是ssh登陆的,然后就反复尝试,关闭22端口,开启,重载,重启.甚至连上另个服务器发现还是一样的情况.在群里问大佬们终 ...
- ARM+DSP!全志T113-i+玄铁HiFi4开发板硬件说明书(1)
前 言 本文档主要介绍开发板硬件接口资源以及设计注意事项等内容,测试板卡为全志T113-i+玄铁HiFi4开发板.由于篇幅问题,本篇文章共分为上下两集,点击账户可查看更多内容详情,开发问题欢迎留言,感 ...
- 【ClickHouse】0:clickhouse学习2之数据类型
一 :如何查看clickhouse具体支持哪些数据类型? 1:查看官方文档:https://clickhouse.tech/docs/en/sql-reference/data-types/ 2:查看 ...
- github中的子模块(git submodule)
git中支持引用另外一个开源库,并且可以指定依赖的分支或者提交记录号. 比如fltk-rs 库的fltk-sys模块依赖了库 cfltk 并指明了依赖的提交是 8a56507 甚至可以嵌套,毕竟库自身 ...
- Mysql生成实体类
-- 查询数据表结构 SELECT CONCAT('"e.',SUBSTRING(COLUMN_NAME,1),',"+'),COLUMN_NAME,',',COLUMN_TYPE ...
- AJAX基础+Axios快速入门+JSON使用+综合案例
目录 1. AJAX 1.1 概述 1.1.1 作用 1.1.2 同步和异步 1.2 快速入门 1.2.1 服务端实现 1.2.2 客户端实现 1.3 案例 1.3.1 需求 1.3.2 分析 1.3 ...
- Spring的AOP快速实现通用日志打印
需求分析 针对VideoService接口实现日志打印 三个核心包 spring-aop:AOP核心功能,例如代理工厂 aspectjweaver:简单理解,支持切入点表达式 aspectjrt:简单 ...
- c 语言学习第四天
if 语句 格式: // 1 // 其他语句... if(表达式){ // 其他语句... } // 其他语句... // 2 if(表达式){ }else{ } // 3 if(表达式1){ }el ...
- 自己理解的TCP三次握手
### TCP 三次握手过程是怎样的? TCP的建立连接是通过三次握手来进行的.三次握手的过程如下图: 说实话这个很好理解,我称之为N字型 首先我们理解到建立连接是一个虚的概念了对吧?那么我们来设计一 ...
- 如何用 WinDbg 调试Linux上的 .NET程序
一:背景 1. 讲故事 最新版本 1.2402.24001.0 的WinDbg真的让人很兴奋,可以将自己伪装成 GDB 来和远程的 GDBServer 打通来实现对 Linux 上 .NET程序进行调 ...