在处理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.WidthPdfPageBase.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页面的方向:

  1. 先获取页面宽度和高度
  2. 再比较这两个值。(如果宽度大于高度,则页面方向为横向,反之则为纵向。)

示例代码如下:

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页面大小、方向、旋转角度的更多相关文章

  1. C# iText 7 切分PDF,处理PDF页面大小

    一.itext 我要使用itext做一个pdf的页面大小一致性处理,然后再根据数据切分出需要的pdf. iText的官网有关于它的介绍,https://itextpdf.com/ 然后在官网可以查找a ...

  2. 【JS 移动端】获取设置页面大小

    获取设置页面大小 function getMobileData() { var ismobile = false; browser = { versions: function () { var u ...

  3. asp.net后台获取前台页面大小

    前台代码如下:<input type="hidden" runat="server" value="0" id="txBod ...

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

    背景 网上下载下来的Pdf格式电子书放到Kindle后由于页面太大,缩放后字常常小得看不清,因此可以通过剪裁页面边缘的空白以缩小页面,使Kindle上显示的字放大.在GitHub上星最多的C# Pdf ...

  5. Java PDF页面设置——页面大小、页边距、纸张方向、页面旋转

    下面的示例将介绍通过Java编程来对PDF页面进行个性化设置的方法,包括设置页面大小.页边距.纸张方向.页面旋转等.这里有如下多种页面大小尺寸可供选择: 同时,设置文档内容旋转时,可支持如下角度进行内 ...

  6. Java 设置Word页边距、页面大小、页面方向、页面边框

    本文将通过Java示例介绍如何设置Word页边距(包括上.下.左.右).页面大小(可设置Letter/A3/A4/A5/A6/B4/B5/B6/Envelop DL/Half Letter/Lette ...

  7. 如何通过Java更改Word中的页面大小和页面方向

    新建的 Word 文档,默认纸张为 A4 纸,大小为 21 厘米 × 29.7 厘米,没特殊要求的文档用 A4 纸即可,但有时文档中的内容比较宽,需要用比 A4 纸更宽的纸张,例如制作一些宽的表格,就 ...

  8. 用 Javascript 获取页面大小、窗口大小和滚动条位置

    页面大小.窗口大小和滚动条位置这三个数值在不同的浏览器例如 Firefox 和 IE 中有着不同的实现.即使在同一种浏览器例如 IE 中,不同版本也有不同的实现. 本文给出两个能兼容目前所有浏览器的 ...

  9. PDF怎么编辑,如何旋转PDF页面方向

    很多的时候,无论是工作中,还是在学习中都会遇到PDF文件,对于PDF文件,熟悉的小伙伴知道,在编辑PDF文件的时候,是需要使用到PDF编辑软件的,那么,在编辑PDF文件的时候,需要旋转文件的页面,这时 ...

  10. js实现禁止pc端浏览器缩放和获取当前页面浏览器的缩放大小

    众所周知:移动端页面禁止用户缩放界面只需加上<meta name="viewport" content="user-scalable=0">即可,但 ...

随机推荐

  1. Linux进程退出:SIGINT、SIGTERM 和 SIGKILL 有关信号 区别

    背景 学习 海思SDK,查看例程的时候发现了类似下面的代码: int main(int argc, char *argv[]) { if(argc != 2) { printf("Usage ...

  2. “进口”双核A53@1.4GHz仅188元起,超高性价比!“邮票孔”AM62x工业核心板,正式发布!

    创龙科技作为TI官方合作伙伴,在2022年9月即推出搭载TI最新明星处理器AM62x的工业核心板-SOM-TL62x(B2B版本).为了让工业客户进一步降低产品成本,并提高产品连接的可靠性,我们再次推 ...

  3. 国产自主架构!龙芯2K1000LA工业核心板正式发布!

    国产自主架构!龙芯2K1000LA工业核心板正式发布! 原创 Tronlong创龙科技 Tronlong创龙科技 2024-06-13 07:50 广东 Tronlong创龙科技 ,赞18 (点击视频 ...

  4. 4. 简明说一下 CSS link 与 @import 的区别和用法?

    两者的基本语法 link语法结构 <link href="外部CSS文件的URL路径" rel="stylesheet" type="text/ ...

  5. dubbo面试题及答案

    Dubbo是什么? Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC 分布式服务框架,现已成为 Apache 基金会孵化项目. 面试官问你如果这个都不清楚,那下面的就没必要问了. 官网:ht ...

  6. iOS开发基础100 - MDM证书申请流程

    申请成为MDM Vendor 首先需要拥有一个 iOS Developer Enterprise Program 帐号; 申请成为MDM Vendor,iOS企业开发帐号默认不支持MDM功能,需要向苹 ...

  7. 可视化—D3学习笔记小小案例记录一下

    D3全称是Data-Driven Documents数据驱动文档,是一个开源的javascript库,可以用于数据可视化图形的创建,该库更接近底层,与 g2.echarts 不同,d3 能直接操作 s ...

  8. PAT-1003 我要通过! (20分) JavaScript(node)

    "答案正确"是自动判题系统给出的最令人欢喜的回复.本题属于 PAT 的"答案正确"大派送 -- 只要读入的字符串满足下列条件,系统就输出"答案正确&q ...

  9. GUN/Linux 基础教程

    GUN/Linux 基础教程 控制台 shell 超级用户 root 辅助管理 CLI 软件 文件基础 目录 链接 设备文件 控制台 shell 在启动 Linux 系统后,如果没有安装 GUI 的话 ...

  10. DASCTF 2023 & 0X401七月暑期挑战赛【PWN】(FileEditor篇)

    DASCTF 2023 & 0X401七月暑期挑战赛[PWN](FileEditor篇) 题目保护情况(保护全家桶) 64位ida逆向 模拟了一个类似vim的功能,有打开文件,打印内容,插入行 ...